2013-10-17 92 views
0

我在使用雄辯的應用程序來檢索模型。laravel雄辯地檢索部分關係

狀態

讓我們假設我有一個模型團體,個人,HOBBY

所有這些連接1:N

GROUP 1---n PERSON 

PERSON 1---n HOBBY 

的方法可以是檢索模式:

$group = Group::find(123)->with('persons.hobbies')->get(); 

要顯示在我的模板我會開除我的團到模板的模型。然後,我會遍歷該組中的我的人員以及我的興趣愛好,例如顯示興趣愛好的名稱 。

問題

由於這種模式是非常(!)微不足道。我想知道是否可能(無用或不可用)直接(不嵌套)所有業餘愛好(作爲一組Eloquent模型)。但是我仍然唯一知道的就是集團(即groupId)在開始時?

在此先感謝

回答

1

這是不可能的,因爲1間---ñgroupperson之間的關係可能對於一個給定group_id返回許多person對象。不可能訪問某個集合的興趣列表。

如果你真的想'直接'這樣做,我的建議是你使用Fluent。查詢生成器而不是Eloquent來加入表。

喜歡的東西:

DB::select('hobby.*') 
    ->from('hobby') 
    ->join('group', 'group.id = person.group_id') 
    ->join('person', 'person.hobby_id = hobby.id') 
    ->where('group.id', $group_id); 
+0

THX的答案 – whereismydipp