Multiple relations

Hi, I have this code to get model with some relations:


$user = User::model()->with('trafficPartner.trafficSources.trafficSourceRequest')->findByPk(Yii::app()->user->id);



it’s generate this SQL:


SELECT

 <bla bla bla>

FROM

  `User`

  LEFT OUTER JOIN

  `TrafficPartner` `trafficPartner` ON

    (`User`.`trafficPartnerId` = `trafficPartner`.`id`)

  LEFT OUTER JOIN

  `TrafficSource` `trafficSources` ON

    (`trafficSources`.`trafficPartnerId` = `trafficPartner`.`id`)

  LEFT OUTER JOIN

  `TrafficSourceRequest` `trafficSourceRequest` ON

    (`trafficSourceRequest`.`trafficSourceId` = `trafficSources`.`id`)

WHERE

  (`User`.`id` = 45)

and there is 3 records, but when i trying to get last relation:


var_dump($user->trafficPartner->trafficSources->trafficSourceRequest);

it’ returns NULL

WTF?

trafficSources sounds like a possible array. Is it a HAS_MANY relationship?

/Tommy

Yes, it’s array but why can’t I get collection of last relation without fetching pervious array of objects?

Yeah, I forget this thing:


                      foreach($user->trafficPartner->trafficSources as $a) {

                            foreach($a->trafficSourceRequest as $<img src='http://www.yiiframework.com/forum/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='B)' /> {

                                echo $b->requestId.'-';

                            }

                        }

it’s shows me that all is ok

but 2 foreach - bad

You might consider to start from trafficSourceRequest, using BELONGS_TO relationships.

(was applicable in my case)

/Tommy

oh, good idea, thanks