如何计算laravel中的关系

时间:2015-09-22 14:37:24

标签: php laravel eloquent

我如何计算用户的角色数量?

当我尝试这个时:

User::with('roles')->count();

它只计算用户数。

我需要的是返回每个用户的角色数量。例如:

[
   {
     "id": 2,
     "name": "user",
     "roles": 2 
   },
   {
     "id": 3,
     "name": "user",
     "roles": 1 
   }
]

2 个答案:

答案 0 :(得分:1)

Eloquent不支持这种开箱即用的方式。

您可以阅读这篇关于如何实现这一目标的精彩文章:

How to get hasMany relation count efficiently?

答案 1 :(得分:0)

如果您已拥有$user对象,则可以执行以下操作:

$rolecount = $user->roles()->count();

或者,如果您正在使用预先加载,则可以删除(&角色)

$rolecount = $user->roles->count();
相关问题