繁体   English   中英

Laravel 5.5 如何获得 eloquent 关系计数?

[英]Laravel 5.5 How to get eloquent relationship count?

我有三个表定义如下

用户

  • ID
  • 姓名

邮政

  • ID
  • 文本
  • 用户身份

注释

  • ID
  • 文本
  • post_id

这是用户模型 User.php

class User
{
     public function post()
    {
       return $this->hasMany(Post::class);
    }   
}

这是我的帖子模型 Post.php

    class Post
    {
       public function comments()
       {
          return $this->hasMany(Comment::class);
       }   
   }

问题:

我想使用雄辩的急切加载显示每个用户的评论数。

任何人都可以帮助我吗? 提前致谢。

您可以为用户的评论定义一个新的hasManyThrough关系( docs ):

class User
{
    public function comments()
    {
        return $this->hasManyThrough(
            'App\Comment',
            'App\Post',
            'user_id', // Foreign key on posts table...
            'post_id', // Foreign key on comments table...
            'id', // Local key on users table...
            'id' // Local key on posts table...
        );
    }
}

现在您可以计算每个用户的评论( Laravel 文档):

$users = App\User::withCount('comments')->get();

foreach ($users as $user) {
    echo $user->comments_count;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM