如何计算laravel elloquent模型中用户帖子的所有评论?

时间:2017-04-07 19:38:47

标签: mysql laravel

用户模型中的一对多关系声明代码..

public function post()
{
   $this->hasMany('App\Post', 'userid','id');// id--from user
}

Post模型中我的一对多关系声明代码..

  public function comment()
{
   $this->hasMany('App\Comment', 'postid','pid');// id--from post
}

现在我想检索用户的所有评论但是如何?

3 个答案:

答案 0 :(得分:2)

尝试用户模型

public function comments()
{
    return $this->hasManyThrough(
               'App\Comment', 'App\Post', 
               'userid', 'postid', 'id'
    );
}

https://laravel.com/docs/5.4/eloquent-relationships#has-many-through

答案 1 :(得分:0)

评论与那里的用户无关,您可以查询的是“用户帖子中的所有评论”

答案 2 :(得分:0)

我想你应该改变你的模型方法并将其复数化:

用户模型:

public function posts()
{
    $this->hasMany('App\Post', 'userid','id');// id--from user
}

发布模型:

public function comments()
{
    $this->hasMany('App\Comment', 'postid','pid');// id--from post
}

在此之后,您可以在控制器中执行此操作来计算用户的评论:

$user->posts->comments->count();