2010-12-09 90 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 
} 

有了這個例子,我知道這是無用的,但有很多的連接和數據單項有必要