我是Laravel的新手,我遇到了以下问题: 我有一个用户表,组和一个用于连接它们的表。任何用户都可以加入任何组的一般任务。
----------------------------------------------
| users | groups | user_groups |
|--------------------------------------------|
| id - int pk | id - pk | id - pk |
| name text | name | user_id - fk |
| email | | group_id - fk |
| phone | | any_attr |
----------------------------------------------
我有以下型号:
class User
{
...
public function groups()
{
return $this->belongsToMany(Group::class, 'user_groups')->withPivot(['is_notification_requested']);
}
...
}
class Group
{
...
public function users()
{
return $this->belongsToMany(User::class, 'user_groups');
}
...
}
我如何获得所有团体,并计算成员数量?我需要Group模型,以及组中用户的计数。
答案 0 :(得分:2)
如果您正在使用Laravel 5.3,则只需添加<!DOCTYPE html>
<html>
<head>
<title>Test Page</title>
<link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
<p>{{.}}</p>
</body>
</html>
,如下所示:https://laravel.com/docs/5.3/eloquent-relationships#counting-related-models
以下是您的代码后面的示例:
withCount('relationship')
现在你可以这样做:
$groups = Group::withCount('users')->get();