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

Cha*_*han 4 php laravel

我有很多用户和角色结构

用户
ID
名称

角色
ID
名称

role_user
user_id
role_id

模型

user.php的

public function roles() {
    return $this->belongsToMany('Role');
}
Run Code Online (Sandbox Code Playgroud)

Role.php

public function users() {
    return $this->belongsToMany('User');
}
Run Code Online (Sandbox Code Playgroud)

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

use*_*496 15

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

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

您可以has()http://laravel.com/docs/eloquent#querying-relations上查看有关该方法的更多信息