如何在视图中显示与条件有太多关系的数据。
我有一篇博文中有评论,但是此评论的条件是未发布。
这里是我的Post
模型
...
public function comments()
{
return $this->hasMany(Comment::class);
}
...
在上面的代码中,我可以简单地使用$post->comments
来显示所有注释。
就像我之前说的,我只需要显示已发布的评论为true
但是如何添加条件?...
答案 0 :(得分:1)
您只能使用
获得发布的评论
$this->post->comments()->where('published', true)->get()
当然,由于所有关系也都可以用作查询构建器,因此可以通过调用comment方法并继续将条件链接到查询上来为检索注释添加更多约束:
$comment = App\Post::find(1)->comments()->where('title', 'foo')->first();
答案 1 :(得分:1)
您可以通过获取带有已发布评论的帖子来实现此目的;
$post = Post::where('id', $id)->with('comments', function ($q) {
$q->where('published', true);
})->first();
然后在视图中调用$ post-> comments时,只会得到已发布的注释。
或者,如果您确实愿意,可以更新模型以使其具有已发布的注释关系,但这是不建议的。
public function publishedComments()
{
return $this->hasMany(Comment::class)->where('published', true);
}