PHP access data of an object
I have an object of which I am looking to get a piece of data from, the object looks like this,
Product Object
(
[name] => Simon Test Cup
[code] => 123456789
[category_id] => 3
[range_id] => 26
[price] => 10.00
[price_logo_add] => 0.25
[image_id] => 846
[rank] =>
[special_offer] => N
[cartProps] => Array
(
)
[section] =>
[vatPercentage] => 17.5
[id] => 551
[date_created] => 2010-05-25 12:46:57
[last_updated] => 2010-05-25 14:10:48
[user_id_updated] => 0
[_aliases] => Array
(
[id] => 551
[date_created] => 2010-05-25 12:46:57
[date_updated] => 2010-05-25 14:10:48
[user_id_updated] => 0
[name] => Simon Test Cup
[code] => 123456789
[category_id] => 3
[range_id] => 26
[price] => 10.00
[price_logo_add] => 0.25
[image_id] => 846
[range_image_id] => 848
[main_image_id] => 847
[rank] =>
[special_offer] => N
)
[_default] => Array
(
[special_offer] => N
)
[_related] => Array
(
[_related] => Array
(
[range] => stdClass Object
(
[key] => range
[group] => _related
[foreignKey] => range_id
[indexName] => id
[tableName] => cc_range
[objectName] => Range
[userFieldlyColName] => name
[criteria] => id='{%range_id%}'
[sqlPostfix] =>
[populateOnLoad] =>
[objects] => Array
(
开发者_高级运维 [26] => Range Object
(
[name] => Shot glasses
[url_name] => shot-glasses
[description] => Personalized shot glasses make great commemorative gifts, souvenirs and wedding favours. Just select your favourite shape and send us a customization form with your logo. See our glassware sale page for info on free logo origination.
[leader] => Customized shot glasses make great commemorative gifts, promotional items and wedding favours. Individual gift boxes are available so you can give the glasses away easily.
[category_id] => 3
[site_id_csv] =>
[image_id_main] => 565
[image_id_thumb] => 566
[rank] =>
[site] => main
[id] => 26
[date_created] => 2008-05-18 21:39:52
[last_updated] => 2009-02-03 13:49:10
[user_id_updated] => 0
[_aliases] => Array
I am wanting to get the id from the [range] = stdClass Object
You could say $object->_related["_related"]["range"], but this structure is presumably that of an object which has accessors for things you might want from it. You're clearly not intended to worry about the internal structure of the thing.
As you might see, your Product
object has an attribute range_id
:
Product Object
(
[name] => Simon Test Cup
[code] => 123456789
[category_id] => 3
[range_id] => 26 // <--- here!
[price] => 10.00
...
So you should be able to get the ID via:
$object->range_id
But probably, the Product
and Range
classes define methods that allow you to access those information and you should use them instead. You just have to read the documentation how to use them.
$product->_related["_related"]["range"]->key
But i'm not sure that i've understood well
Assuming Felix' answer doesn't work (which it may very well), I'm guessing that the _related
field is protected. In that case, there should be an accessor method in that class to let you get related objects. Please use get_class_methods()
on the object and edit your post with the methods that are available.
精彩评论