我的應用程序具有附加到Post對象的View對象(多對一)。用戶對象有許多帖子。我如何檢索本質上$totalViews = $user->posts()->views()->count();
?獲取用戶對象的所有Post對象上的總查看對象的數量
該語法顯然不起作用。我可以遍歷每個$ user->帖子並添加視圖,但是這似乎很慢,並且可能有更好的方法。
我的應用程序具有附加到Post對象的View對象(多對一)。用戶對象有許多帖子。我如何檢索本質上$totalViews = $user->posts()->views()->count();
?獲取用戶對象的所有Post對象上的總查看對象的數量
該語法顯然不起作用。我可以遍歷每個$ user->帖子並添加視圖,但是這似乎很慢,並且可能有更好的方法。
我不知道如何用雄辯的關係做到這一點,但你可以分兩步來完成。
$arrayOfIds = Post::where('user_id', $id)->get('id')->toArray();
$totalViews = View::whereIn('post_id', $arrayOfIds)->count();
這可能是我能想到的最簡單的方法。
感謝大家,現在可以使用。 –
對於任何可能需要它的人,我會使用'$ posts = DB :: table('posts') - > where('user_id',1) - > lists('id');'獲取數組因爲這會返回一個整數數組而不是一個對象數組 –
渴望加載呢? –
@PeteHouston在循環每個帖子時會阻止n + 1查詢,但它仍然需要遍歷每個可能很慢的帖子。 –
如果'$ user-> posts-> views-> count()'有任何錯誤嗎? –