开发者

Doctrine : do not load related records

In order to improve performance of app, I would like to separate queries instead of using leftJoins. Then I have to create my own related Doctrine_Collectio开发者_StackOverflow社区n :

$user->Friends->add($current_friend);

But I don't want doctrine does a query when I try to access related (not loaded) Collection.

How I can do that. Thanks in advance.


I think the answer is in this § about relation handling. Build a new friendship relation and save it instead of adding a friend to a user object.


then I found this way (I should optimize this) :

$my_relation_collFriend = FriendTable::getInstance()->findByIdUser($user->id_user);

foreach($my_relation_collFriend as $friend)
{
   $collFriend = $user->get('Friends', false); //get the related collection without db query
   if(!$collFriend ) //unfornatly, It can be null 
   {
     $collFriend = new Doctrine_Collection::create('friend'); //create the collection
     $user->set('Friends', $collFriend, false); // define the related collection without db query
   }
   $collFriend->add($friend); //add the record to related collection
 }

With this example I know this is useless but with lot of joins and datas it becomes necessary

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜