[英]Laravel 5.5 How to get eloquent relationship count?
我有三个表定义如下
用户
邮政
注释
这是用户模型 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.