2016-05-15 98 views
1

我一直在使用雄辯只是一會兒,我無法弄清楚如何完成這一點。假設我有通常的帖子,用戶和評論關係,並且我想返回列表中的所有帖子和也指示登錄的用戶評論過哪些帖子。Laravel雄辯得到所有與約束的關係

通過查詢與whereHas()with()我已經能夠返回與用戶的評論文章,或與所有用戶的意見的所有帖子。但我怎麼會得到所有帖子只有 auth用戶的評論?甚至只是一個布爾值,表示用戶評論的存在。

我覺得這應該是非常直接的,我只是無法在文檔或這些板上找到答案。

回答

0

也許是這樣的:

$posts = Post::whereHas('comments',function($commentQuery){ 
      $commentQuery->whereHas('user',function($userQuery){ 
       $userQuery->where('id',Auth::user()->id); 
      }); 
     })->get(); 
+0

好像答案是某種嵌套查詢的,但是這一次仍然只返回的帖子與認證/的評論,而不是休息。 –

+0

@JonathanMarasco我想我誤解了這個問題。要確定你想知道某個'Post'對象是否有被認證用戶發佈的評論,是否正確? –

+0

謝謝你看看這個。是的,這是正確的 - 我想返回一個_all_帖子的列表,其中_only_是由auth用戶指定的帶有評論的帖子。根據文檔'whereHas()'「向查詢添加一個計數/存在條件」,這會限制結果。我認爲我需要的是更像'with()'這種渴望加載關係的東西,但據我所知它不需要任何參數。 –