Laravel口若悬河,关系受限
我一直在使用雄辩现在只有一段时间,我不知道如何做到这一点。假设我有常见的帖子、用户和评论关系,我想返回所有帖子的列表,并且在该列表中还指示登录用户对哪些帖子发表了评论 通过使用Laravel口若悬河,关系受限,laravel,eloquent,Laravel,Eloquent,我一直在使用雄辩现在只有一段时间,我不知道如何做到这一点。假设我有常见的帖子、用户和评论关系,我想返回所有帖子的列表,并且在该列表中还指示登录用户对哪些帖子发表了评论 通过使用whereHas()或with()查询,我只能返回包含用户评论的帖子,或者返回包含所有用户评论的所有帖子。但是,我怎样才能得到所有只有auth用户评论的帖子呢?甚至只是一个布尔值,指示用户注释的存在 我觉得这应该是非常简单的,我只是没能在文档或这些板上找到答案 可能是这样的: $posts = Post::whereHas
whereHas()
或with()
查询,我只能返回包含用户评论的帖子,或者返回包含所有用户评论的所有帖子。但是,我怎样才能得到所有只有auth用户评论的帖子呢?甚至只是一个布尔值,指示用户注释的存在
我觉得这应该是非常简单的,我只是没能在文档或这些板上找到答案 可能是这样的:
$posts = Post::whereHas('comments',function($commentQuery){
$commentQuery->whereHas('user',function($userQuery){
$userQuery->where('id',Auth::user()->id);
});
})->get();
也许是这样的:
$posts = Post::whereHas('comments',function($commentQuery){
$commentQuery->whereHas('user',function($userQuery){
$userQuery->where('id',Auth::user()->id);
});
})->get();
答案似乎是某种嵌套查询,但这个查询仍然只返回带有Auth/User注释的帖子,而不是其他的。@JonathanMarasco我想我误解了这个问题。为了确保您能够判断某个
Post
对象是否有经过身份验证的用户发布的注释,是否正确?感谢您查看此内容。是的,这是正确的-我想返回一个所有帖子的列表,其中只显示带有auth用户评论的帖子。根据文档whereHas()
“向查询中添加计数/存在条件”,这将限制结果。我想我需要的是更像with()
的东西,它急切地加载关系,但据我所知,它不需要参数。答案似乎是某种嵌套查询,但这一个仍然只返回带有Auth/User注释的帖子,而不是其他的。@JonathanMarasco我想我误解了这个问题。为了确保您能够判断某个Post
对象是否有经过身份验证的用户发布的注释,是否正确?感谢您查看此内容。是的,这是正确的-我想返回一个所有帖子的列表,其中只显示带有auth用户评论的帖子。根据文档whereHas()
“向查询中添加计数/存在条件”,这将限制结果。我想我需要的是更像with()
的东西,它可以加载关系,但据我所知,它不需要参数。