【发布时间】:2020-08-25 23:05:03
【问题描述】:
我有一个用户模型,它与角色模型具有 M:M 关系(我使用 roles_user 中间表来实现 M:M 关系)
中间表有一个“活动”列,它定义分配给用户的多个角色中的哪个是活动角色。
所以,我正在尝试检索具有所有关系的用户,它也只有活动角色。
为此,我正在执行以下代码https://laravel.com/docs/6.x/eloquent-relationships#querying-relationship-existence:
public function index()
{
$users = User::whereHas('roles', function (Builder $query) {
$query->where('active', true);
})->get();
foreach ($users as $user) {
dd($user->roles);
}
return view('pages.admin.users.index', compact('users'));
}
当我 dd 集合时,我在中间表中有 5 条记录,而不仅仅是我正在过滤的活动记录:
我做错了什么?
【问题讨论】: