我使用Eloquent已经有一段时间了,我不知道如何实现这一点。假设我有通常的帖子、用户和评论关系,我想返回所有帖子的列表,该列表中的还指示登录用户对哪些帖子发表了评论。
通过使用whereHas()
或with()
进行查询,我只能返回带有用户评论的帖子,或者返回所有带有所有用户评论的所有帖子。但是,我如何获得所有帖子,而只有授权用户的评论?或者甚至只是一个布尔值,指示用户评论的存在。
我觉得这应该很简单,我只是没能在文档或这些板上找到答案。
也许是这样的:
$posts = Post::whereHas('comments',function($commentQuery){
$commentQuery->whereHas('user',function($userQuery){
$userQuery->where('id',Auth::user()->id);
});
})->get();