Доктрина: не загружать связанные записи - PullRequest
0 голосов
/ 09 декабря 2010

Чтобы улучшить производительность приложения, я бы хотел разделять запросы вместо использования leftJoins.Затем я должен создать свою собственную связанную Doctrine_Collection:

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

Но я не хочу, чтобы doctrine выполнял запрос при попытке получить доступ к связанной (не загруженной) коллекции.

Как я могусделай это.Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 09 декабря 2010

тогда я нашел этот способ (я должен оптимизировать это):

$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
 }

В этом примере я знаю, что это бесполезно, но с большим количеством соединений и данных становится необходимым

0 голосов
/ 09 декабря 2010

Я думаю, что ответ в этом § об обработке отношений .Создайте новое дружеское отношение и сохраните его вместо добавления друга в объект пользователя.

...