2010-12-09 2 views
0

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

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

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

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

ответ

0

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

+0

Я понимаю, что вы имеете в виду, но Я не хочу сохранять новых друзей (их уже существует в базе данных), я хочу повторно создать граф объектов пользователей и друзей самостоятельно с несколькими запросами, а не только с одним. – DEY 2010-12-09 10:51:32

0

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

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

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

Смежные вопросы