users
id
roles
id
name
user_roles
user_id
role_id
Ich möchte alle Benutzer mit bestimmten Rollen abfragen. z.B. erhalten alle Benutzer, die die Rolle 'admin'eloquent wo ID in von vielen zu vielen
users
id
roles
id
name
user_roles
user_id
role_id
Ich möchte alle Benutzer mit bestimmten Rollen abfragen. z.B. erhalten alle Benutzer, die die Rolle 'admin'eloquent wo ID in von vielen zu vielen
So haben, können Sie die verwenden whereHas von Eloquent
$users = User::whereHas('roles', function($query) {
$query->where('name', 'admin');
})->get();
Siehe hier als Referenz https://laravel.com/docs/5.5/eloquent-relationships
Wenn Sie Rolle ID wissen, dies zu tun:
User::whereHas('roles', function ($q) use($roleId) {
$q->where('id', $roleId);
})
->get();
Wenn Sie nur Namen oder Titel der Rolle kennen, dies tun:
User::whereHas('roles', function ($q) use($roleTitle) {
$q->where('title', $roleTitle);
})
->get();
Es besteht auch die Möglichkeit, an der Beziehung von der anderen Richtung zu gehen:
Role::where('name', 'admin')->firstOrFail()->users;
Gibt es auch eine Möglichkeit, diese von einer anderen Abfrage als Teil zu tun: z.B. Kommentar :: where ('Benutzer' ... ist Benutzer mit Rolle admin? – Chris
Ich bin nicht ganz sicher, dass ich Ihre Frage verstehe. – lagbox