带有数据透视的Laravel雄辩查询模型

时间:2017-01-09 18:21:26

标签: laravel

我有一个带有数据透视表role_user的用户模型。

在我的用户表格中,我有一个字段'有效'。

用户可以拥有多个角色,这些角色保存在数据透视表中。

如何拉动所有处于active = 1且用户在数据透视表中具有特定角色的用户?

2 个答案:

答案 0 :(得分:4)

试试这个。这假设您在用户和角色之间建立了雄辩的关系。我只在hasMany / belongsTo关系中使用了这种类型的查询,但我认为它也适用于您的示例。

$users = User::where('active', 1)->whereHas('roles', function ($query) {
    $query->where('role', 'foo');
})->get();

答案 1 :(得分:3)

按角色使用whereHas()方法过滤用户:

User::whereHas('roles', function($q) use ($role) {
    $q->where('role', $role);
})->where('active', 1)->get();