我有一个用户实体。它实现了基本的用户界面 我想按角色对用户进行排序,但我不知道该怎么做。
(仅用于向我的管理员发送消息,其中的消息实体以ManyToOne关系为目标用户实体)
答案 0 :(得分:0)
好吧,也许是这样:
// $users - users from db, collection of user entity class
$myAdmins = array();
foreach($users as $user){
if (in_array('ROLE_ADMIN', $user->getRoles())) {
$myAdmins[] = $user;
}
}
$myAdmins
中的用户具有ROLE_ADMIN
角色。
答案 1 :(得分:0)
$query = $this->getDoctrine()->getEntityManager()
->createQuery(
'SELECT u FROM MyBundle:User u WHERE u.roles LIKE :role'
)->setParameter('role', '%"ROLE_MY_ADMIN"%');
$users = $query->getResult();
将工作卸载到数据库服务器。即使有超过100,000条记录,此查询也不需要很长时间才能返回。