2013-07-23 1 views
1

Dans FosUserbundle, comment puis-je trouver des utilisateurs par rôle spécifique. J'ai aussi implémenté le groupe Group ainsi le tableau Roles vient aussi de Group-> getRoles. Y at-il un moyen d'utiliser QueryBuilder pas en boucle à travers tous les utilisateurs de DB?FosUserBundle recherche les utilisateurs par rôle (et rôles de groupes)

+0

Je pense que cela pourrait répondre à votre question: http://stackoverflow.com/questions/9016914/symfony-2-fos-bundle-how-to -select-users-with-a-specific-role – Tocacar

+1

Le problème ici est que l'utilisateur a un à plusieurs liens avec le groupe, et dans chaque groupe a un tableau de rôles. J'ai déjà vu cette réponse mais cela aide simplement pour un cas simple sans entité du groupe –

Répondre

3

Vous avez juste besoin d'ajouter une jointure de l'utilisateur au groupe vers les rôles, où rôle = le rôle que vous recherchez. C'est juste une requête simple avec une jointure.

Quelque chose comme ceci:

$qb->select("u") 
     ->from("YourUserBundle:User", "u") 
     ->join("u.Group", "g") 
     ->join("g.Role", "r") 
     ->where("r.role = :role"); 
    $query = $qb->getQuery(); 
    $query->setParameter("role", $role); 

    $results = $query->getResult(); 

View the gist

Questions connexes