有4個表:用戶,所有者,組,要求- Laravel雄辯
有業主和請求之間沒有直接關係,我正在尋找一種方式來做些什麼像這樣:$ onwer-> requests,以獲得與所有者相關的所有請求。
這裏是事情是如何工作的:
每個用戶都是在一組,每個組由所有者擁有,請求將用戶創建和每個請求是一組(一個內有關/)。
表是這樣的:
業主:ID,用戶名
組:ID,姓名,owner_id,一年 用戶:ID,用戶名
GROUP_USER:ID,GROUP_ID邀請,USER_ID
要求:身份證, group_id,user_id,desc
創建所有者和組之間,或者請求和用戶之間的關係很容易,但我怎樣才能向所有者獲取所有相關請求?另一件事是,我應該能夠得到屬於一個所有者的所有請求,這些請求屬於組,其中聲明像年=某事。
現在我在做一些愚蠢的事是這樣的:
有一個組,並請求之間一對多的關係,這樣我就可以得到一組的所有請求。(組的hasMany要求)
$groups = Group::where('owner_id', $owner_id)->get();
foreach($groups as $group)
foreach($group->requests as $request)
if($request->year == 2016)
$requests[] = $request;
您可能正在尋找'hasManyThrough'。你可以'返回$ this-> hasManyThrough(\ App \ Request :: class,\ App \ Group :: class);'。這種說法是「我是所有者類,通過組實體有很多請求」。由於你的'group'已經擁有'owner_id',並且你的請求有'group_id',它應該可以工作。 –
是的,它完成了這項工作。謝謝。我真的不知道爲什麼我從來沒有讀過laravel文檔中的*有很多通過*部分。 – Ravexina