简体   繁体   English

按角色对symfony用户进行排序

[英]Sort symfony users by roles

I have a user entity. 我有一个用户实体。 It implements the basic user-interface. 它实现了基本的用户界面。
I want to sort my users by roles and I don't know how to do it. 我想按角色对用户进行排序,但我不知道该怎么做。

(it is for send a message for my admins only with a message entity who is targeting the user entity on a ManyToOne relation) (它仅用于向与ManyToOne关系上的用户实体作为目标的消息实体向管理员发送消息)

OK, maybe that: 好吧,也许是这样:

// $users - users from db, collection of user entity class
$myAdmins = array();
foreach($users as $user){
    if (in_array('ROLE_ADMIN', $user->getRoles())) {
      $myAdmins[] = $user;
    }
}

in $myAdmins has users with ROLE_ADMIN role. $myAdmins中的用户具有ROLE_ADMIN角色。

$query = $this->getDoctrine()->getEntityManager()
            ->createQuery(
                'SELECT u FROM MyBundle:User u WHERE u.roles LIKE :role'
            )->setParameter('role', '%"ROLE_MY_ADMIN"%');

$users = $query->getResult();

Offload the work to your DB Server. 将工作卸载到您的数据库服务器。 This query shouldn't take long to return, even with 100,000+ records. 即使有100,000条以上的记录,此查询也无需花费很长时间即可返回。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM