-
-
Notifications
You must be signed in to change notification settings - Fork 384
Open
Description
- Laravel Version: 10.48.28
- Laratrust Version: 8.3.2
Describe the bug
I'm using Teams and when I try to get users with specific permission with whereHasPermission
, I get the following error: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'team_id' in where clause is ambiguous
.
The code I'm using is:
$query = User::query();
if (empty($request->get('all'))) {
$query->whereNot('id', $request->user()->id);
}
$query->whereHasPermission('archive.manage', $request->user()->organisation_id);
return new IndexCollection($query->get());
But if I replace the whereHasPermisison
with whereHas
, it works:
$query = User::query();
if (empty($request->get('all'))) {
$query->whereNot('id', $request->user()->id);
}
$query->where(function ($query) use ($request) {
$query->whereHas('roles', function ($query) use ($request) {
$query->where('roles.team_id', $request->user()->organisation_id)
->whereHas('permissions', function ($query) use ($request) {
$query->where('name', 'archive.manage');
});
})
->orWhereHas('permissions', function ($query) use ($request) {
$query->where('name', 'archive.manage')
->where('permission_user.team_id', $request->user()->organisation->id);
});
});
return new IndexCollection($query->get());
Metadata
Metadata
Assignees
Labels
No labels