我正在尝试显示没有与之关联的评论的帖子列表。换句话说,在我的一对多关系中,如果有孩子,则不应显示帖子。
除了使用原始查询执行此操作外,还有一种简单的方法可以有效地执行此操作吗?
模型 - Post.php
public function comments()
{
return $this->hasMany('Comment');
}
模型 - Comment.php
public function post()
{
return $this->belongsTo('Post');
}
Controller - PostController.php
public function unanswered()
{
$posts = Post::with('comments')
->orderBy('created_at', 'desc')
->paginate(5);
return View::make('unanswered')->with('posts',$posts);
}
答案 0 :(得分:1)
with('comments')是急切加载
您需要的实际上是与where。
的连接答案 1 :(得分:1)
为了获取具有或不具有给定关系的模型,您需要使用has
方法。
根据您要实现的目标,使用普通has('relation')
或传递其他参数:
$posts = Post::has('comments', '<', 1)->get();