2017-02-12 3 views
0

Ich möchte alle Benutzer, die nicht verschiedene Beziehung Existenzen und verschiedene Rollen haben.Laravel Entrust, Abfrage, wo Benutzer keine Rolle haben

Im Moment funktioniert das richtig:

User::doesntHave('trusts') 
     ->doesntHave('sites') 
     ->pluck('email', 'name', 'id'); 

Was würde Ich mag es auch Benutzer zu entfernen, die die ‚admin‘ Rolle.

Bisher habe ich versucht:

User::doesntHave('trusts') 
     ->doesntHave('sites') 
     ->whereDoesntHave('roles', function ($query) { 
      $query->hasRole(['admin']); 
     }) 
     ->pluck('email', 'name', 'id') 

Aber es gibt den Fehler:

Call to undefined method Illuminate\Database\Query\Builder::hasRole()

Wie kann ich die Benutzer herauszufiltern, die eine bestimmte Rolle haben?

Antwort

1

testen

User::doesntHave('trusts') 
     ->doesntHave('sites') 
     ->whereDoesntHave('roles', function ($query) { 
      $query->where('name', 'admin'); 
     }) 
     ->pluck('email', 'name', 'id') 
+0

funktioniert perfekt! Danke @Paras. – Ben

+0

Froh, dass es geholfen hat, Prost! – Paras

Verwandte Themen