我有一个Posts
和一个Comments
表,其中每个帖子可以有多个评论。仅当用户登录时才返回关系?
我想做一个查询,获取所有帖子,以及所有登录用户的评论。
这是我到目前为止有:
$posts = Post::select('posts.*')
->with(['comments' => function($query) {
if (Auth::check()) {
$query->where('user_id', Auth::user()->id);
}
}])
->get();
而且我Post.php
模型类看起来是这样的:
class Post extends Model
{
public function comments()
{
return $this->hasMany('App\Comment');
}
}
当用户登录该查询返回正确的结果
但是当用户是而不是登录时,它返回所有用户的评论,而不是返回n没有(因为用户登录,因此他们没有评论)。
我该如何解决这个问题?
我应该提一下,我想返回的结果是我的API,因此我不使用刀片视图。出于这个原因,我需要加载结果。 – user7863944