views:

47

answers:

4

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

A: 

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.

Felix Kling
+1  A: 
$product->_related["_related"]["range"]->key

But i'm not sure that i've understood well

mck89
+2  A: 

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.

Colin Fine
+1 Gooood answer
mck89
A: 

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.

Joseph Mastey