2013-07-23 4 views
1

В FosUserbundle Как найти пользователей по определенной роли. Я также реализовал Группу так, чтобы массив Roles поступал из Group-> getRoles. Есть ли способ использовать QueryBuilder, а не цикл через всех пользователей из db?FosUserBundle найти пользователей по ролям (и группам)

+0

Я думаю, что это может ответить на ваш вопрос: http://stackoverflow.com/questions/9016914/symfony-2-fos-bundle-how-to -select-users-with-a-specific-role – Tocacar

+1

Проблема заключается в том, что у Пользователя есть одно отношение к группе, и в каждой группе есть массив ролей. Я уже видел этот ответ, но он просто помогает для простого случая без объекта Group –

ответ

3

Поэтому вам просто нужно добавить соединение от пользователя к группе для ролей, где role = роль, которую вы ищете. Это просто прямой запрос с соединением.

Что-то вроде этого:

$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

Смежные вопросы