Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉威尔计数雄辩的归属相关模型_Php_Mysql_Laravel_Eloquent_Relationship - Fatal编程技术网

Php 拉威尔计数雄辩的归属相关模型

Php 拉威尔计数雄辩的归属相关模型,php,mysql,laravel,eloquent,relationship,Php,Mysql,Laravel,Eloquent,Relationship,我是拉威尔的新手,我遇到了以下问题: 我有一个用于用户和组的表,还有一个用于连接它们的表。任何用户都可以加入任何组的常规任务 ---------------------------------------------- | users | groups | user_groups | |--------------------------------------------| | id - int pk | id - pk | id - pk |

我是拉威尔的新手,我遇到了以下问题: 我有一个用于用户和组的表,还有一个用于连接它们的表。任何用户都可以加入任何组的常规任务

----------------------------------------------
| 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');
    }
    ...
}

如何获得所有的组,以及成员数?我需要组模型和组中的用户数。

如果您使用的是Laravel 5.3,您只需添加
withCount(“关系”)
,如下所示:

下面是一个代码示例:

$groups = Group::withCount('users')->get();
现在您可以执行以下操作:

foreach($groups as $group) {
    echo $group->user_count
}

你需要将计数作为返回对象先前计算的属性,还是可以在打印值时进行计算?你使用的是Laravel 5.2还是5.3?莱尔特:好吧,这没关系,我什么时候才能得到值。我只需要一个组列表,以及组中的用户数。这是一个分页的列表。奥利列德:拉威尔5.3我不知道这件事。当然,这是一个更好的解决方案。这是一个新的5.3功能。两者都很好地工作!:)但我想我应该用withCount的方法。非常感谢。