Laravel 4 - 仅列出与相关评论相关的帖子集合

时间:2014-07-24 12:01:20

标签: laravel laravel-4 eloquent

我正在尝试显示没有与之关联的评论的帖子列表。换句话说,在我的一对多关系中,如果有孩子,则不应显示帖子。

除了使用原始查询执行此操作外,还有一种简单的方法可以有效地执行此操作吗?

模型 - 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);

}

2 个答案:

答案 0 :(得分:1)

with('comments')是急切加载

您需要的实际上是与where。

的连接

答案 1 :(得分:1)

为了获取具有或不具有给定关系的模型,您需要使用has方法。

根据您要实现的目标,使用普通has('relation')或传递其他参数:

$posts = Post::has('comments', '<', 1)->get();