0
我有一個用戶表和一個組表。 我建立了多對多的用戶/組關係。 當我運行Laravel獲取所有相關型號的多個型號
$users = User::where("id",'=',6)->first()->groups;
,我得到正確的組。
但我會遇到我的查詢將在一個用戶陣列中的情況。 如何獲得所有使用laravel關係的用戶的所有組?
我有一個用戶表和一個組表。 我建立了多對多的用戶/組關係。 當我運行Laravel獲取所有相關型號的多個型號
$users = User::where("id",'=',6)->first()->groups;
,我得到正確的組。
但我會遇到我的查詢將在一個用戶陣列中的情況。 如何獲得所有使用laravel關係的用戶的所有組?
eMAD的建議不起作用,因爲Laravel只允許在對象上執行關係函數而不在對象數組上執行。你想要的harvey是一個叫做急切加載的概念。
$users = User::whereIn('id', [6, 7, 8])->with('groups')->get();
使用此代碼,您將可以在代碼中訪問$user->groups->someInfo
。快樂編碼
你能用英文告訴我,功能在做什麼? 它是否仍然利用我在組和用戶模型中定義的關係? –
我還有一個與此相關的問題。 我也有一個名爲ACTION的表,其中有一個名爲VOTE的表,有許多關係。現在,VOTE表在名爲子項的表上具有一對多的關係。 是否有可能爲一組給定的操作獲取所有投票行及其子項行? –
當您使用User :: findOrFail(1)時,它僅加載用戶模型,而不加載與其相關的其他模型。要加載所有模型,可以使用with('parameter')方法加載相關模型。 with函數的參數在模型類中聲明的函數的名稱就像您猜測的一樣。其實你可以連鎖加載甚至遙遠的相關模型。例如:User :: with('groups.Members')。這可以讓你調用$ user-> groups-> members,假設組模型可以與成員模型相關聯。希望你能得到它 – alaboudi