Laravel计数Eloquent属于ToMany相关模型

时间:2016-09-26 18:19:39

标签: php mysql laravel eloquent relationship

我是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模型,以及组中用户的计数。

1 个答案:

答案 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();