Ich muss eine Abfrage erstellen, die alle Benutzer zurückgibt, die 'ROLE_ADMIN' als Rolle erhalten haben (ich verwende FOSUserBundle dafür).Doctrine QueryBuilder, das die Methode des Objekts verwendet
Ich habe das bereits versucht, aber es funktioniert nicht, es wirft mich "Warnung: get_class() erwartet Parameter 1 zu Objekt, boolean gegeben".
public function getAdminQueryBuilder() {
return $this->createQueryBuilder('u')
->where('u.hasRole(:role)', true)
->setParameter('role', 'ROLE_ADMIN')
;
}
Beachten Sie, dass ohne die Bedingung, es funktioniert und ich habe alle Benutzer in Dabatase zurückgegeben.
Vielen Dank für Ihre Antwort, aber es wirft "[Semantical Error] Zeile 0, Spalte 54 in der Nähe 'hasRole =: r': Fehler: Klasse AppBundle \ UserBundle \ Entity \ Benutzer hat kein Feld oder eine Assoziation mit dem Namen hasRole". Sieht so aus, als ob es hasRole nicht als Funktion betrachtet? – Mit
Haben Sie bereits '@Security (" has_role ('ROLE_ADMIN') ")' Routing-Annotation [wie hier beschrieben] (https://symfony.com/doc/current/security.html#securing-controllers-and-other) berücksichtigt -Code)? –
Ja, diese Nachricht bedeutet, dass in der Entität "User" kein 'hasRole'-Feld definiert ist. –