Reputation: 2944
I have an object that looks like this when outputted via a print_r
Array
(
[178] => My_Model_Category Object
(
[autoGenerateURLNameIfNotSupplied] => 1
[id] => 178
[name] => Just for Kids
[date_created] => 2010-04-06 16:08:40
[last_updated] => 2010-06-29 10:29:50
[user_id_updated] => 0
[_table] =>
[_aliases] => Array
(
[id] => 178
[name] => Just for Kids
[date_created] => 2010-04-06 16:08:40
[date_updated] => 2010-06-29 10:29:50
[user_id_updated] => 0
[parent_id] =>
[url_name] => just-for-kids
[description] =>
[image_id] =>
[image_id_teaser] => 109
[cat_usage] => recipes
[rank] =>
[note] =>
)
[_nonDBAliases] => Array
(
)
[_default] => Array
(
)
[_related] => Array
(
[_related] => Array
(
[image] => stdClass Object
(
[key] => image
[group] => _related
[foreignKey] => image_id_teaser
[indexName] => id
[tableName] => jm_asset
[objectName] => Common_Model_Asset
[userFieldlyColName] => name
[criteria] => id='{%image_id_teaser%}'
[sqlPostfix] => ORDER BY rank ASC
[populateOnLoad] => 1
[objects] => Array
(
[109] => Common_Model_Asset Object
(
[id] => 109
[name] =>
[date_created] => 2010-03-29 15:07:25
[last_updated] => 2010-03-29 15:07:25
[user_id_updated] => 0
[_table] =>
[_aliases] => Array
(
[id] => 109
[name] =>
[date_created] => 2010-03-29 15:07:25
[date_updated] => 2010-03-29 15:07:25
[user_id_updated] => 0
[asset_usage] =>
[url] => /x/img/dyn/recipe/my-recipe-26-image.jpg
[type] => recipe_image
**[filename] => my-recipe-26-image.jpg**
[fileext] => .jpg
[filesize] =>
[width] => 250
[height] => 250
[scale] =>
[rank] =>
[note] =>
)
)
I am trying to access the image file name (see the starred entry), I have tried this currently to no avail,
print_r($this->recipeCategories->_related->_related->images);
Upvotes: 1
Views: 6507
Reputation: 11077
Try reorganized your code to use getters and setters, your internal structure is a mess and it will only get messier with time. http://www.php.net/manual/en/language.oop5.overloading.php#language.oop5.overloading.members
Upvotes: 0
Reputation: 522024
$this->recipeCategories->_related['_related']['image']
or (hard to tell what's what exactly in what you posted):
$this->recipeCategories[178]->_related['_related']['image']
_related
is an array, you can't access it like an object. Just carefully follow what you see in your print_r
output. If it says Object
, you need to access children with ->
, if it says Array
, use []
.
Upvotes: 1
Reputation: 449395
It's a wild mixture of arrays and objects. To get the objects
property of the image
object, use
Try
print_r($this->recipeCategories[178]->related["_related"]["image"]->objects);
Upvotes: 1