1

ユーザーエンティティがあります。基本的なユーザーインターフェイスを実装します。
ユーザーを役割で並べ替えたいのですが、その方法がわかりません。

(これは、ManyToOneリレーションでユーザーエンティティをターゲットにしているメッセージエンティティを使用してのみ、管理者にメッセージを送信するためのものです)

4

2 に答える 2

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();

作業をDBサーバーにオフロードします。100,000以上のレコードがある場合でも、このクエリが返されるのにそれほど時間はかかりません。

于 2013-03-18T15:30:16.807 に答える
0

OK、多分それ:

// $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持つユーザーがいます。ROLE_ADMIN

于 2013-03-18T11:26:47.117 に答える