Laravel 5 Eloquent数不胜数关系

时间:2016-07-17 05:57:16

标签: laravel-5 eloquent

假设我使用数据透视表user表,我有表rolesrole_user有很多关系。

我在模型上使用belongstomany关系

如何制作一个有说服力的查询来计算有多少用户拥有角色adminstaff

1 个答案:

答案 0 :(得分:1)

解决。

将此内容添加到Role.php模型

public function userCount() {
    return $this->belongsToMany(Role::class)
        ->selectRaw('count(role_user.user_id) as total_user')
        ->groupBy('role_id');
}

和这个

public function getUserCountAttribute()
    {
        if ( ! array_key_exists('userCount', $this->relations)) $this->load('customerCount');

        $related = $this->getRelation('userCount')->first();

        return ($related) ? $related->total_user : 0;
    }

之后,进行雄辩的查询...

$roleUsers = Role::with('userCount')->orderBy('id', 'asc')->get();