如何在Laravel中过滤多对多结构

时间:2014-01-27 10:51:19

标签: php laravel

我有多对多的用户和角色结构

用户
ID
名称

角色
ID
名称

ROLE_USER
USER_ID
ROLE_ID

模型

User.php

public function roles() {
    return $this->belongsToMany('Role');
}

Role.php

public function users() {
    return $this->belongsToMany('User');
}

角色表中有两个数据adminsmembers,我想知道过滤用户哪个角色是管理员。

1 个答案:

答案 0 :(得分:13)

这应该为您提供所有管理员用户。

$users = User::whereHas('roles', function($q) {
    $q->where('name', '=', 'admins');
})->get();

您可以在http://laravel.com/docs/eloquent#querying-relations

上查看有关has()方法的更多信息