2013-07-23 90 views
1

在FosUserbundle中,如何通過特定角色查找用戶。我也實現了Group,所以Roles數組也來自Group-> getRoles。有沒有辦法使用QueryBuilder不循環通過數據庫的所有用戶?FosUserBundle按角色(和組角色)查找用戶

+0

我想這可能會回答你的問題:http://stackoverflow.com/questions/9016914/symfony-2-fos-bundle-how-to -select-users-with-a-specific-role – Tocacar

+1

這裏的問題是User與Group有一對多的關係,並且在每個組中都有一個角色數組。我已經看到了這個答案,但它只是對沒有Group實體的簡單情況有幫助 –

回答

3

所以你只需要添加一個從用戶到組的聯接到角色,角色=你正在尋找的角色。這只是一個簡單的連接查詢。

事情是這樣的:

$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