이 코드어떻게 효과적으로
$users = $this->getDoctrine()->getEntityManager()
->createQuery('SELECT tu FROM UserBundle:User tu')
->getResult();
$result = array();
foreach($users as $user){
if($user->hasRole('ROLE_CUSTOMER'))
$result[] = $user;
}
return $this->render('XBundle:Order:index.html.twig',
array('users' => $result));
으로 이런 짓을했는지하지만이 같은 결과를 얻을 수있는 간단한 방법은 무엇 Symfony2 + 교리의 역할에 따라 사용자를 나열하려면?
감사합니다.
업데이트, 추가 정보는 :
우리의 주요 문제는 사용자 역할이 계층 구조를 가지고있다.
ROLE_EDITOR에서 ROLE_WRITER를 정의하면 ROLE_EDITOR는 자동으로 ROLE_WRITER를 갖게됩니다.
따라서 간단한 쿼리 만 사용할 수는 없으므로 보안 컨텍스트 구성 요소도 사용해야한다고 생각합니다.
내 구조는 FOSUserBundle과 동일합니다.이 역할은 사용자 테이블의 한 열에 저장된 직렬화 된 배열입니다. 우리의 주요 문제점은 사용자 역할이 계층 구조를 가지고 있다는 것입니다. 그래서 ROLE_EDITOR에 ROLE_WRITER를 정의하면 ROLE_EDITOR는 자동으로 ROLE_WRITER를 갖게됩니다. 따라서 단순한 쿼리를 사용할 수는 없지만 보안 컨텍스트 구성 요소도 활용해야한다고 생각합니다. – ardianys
나는 직렬화 된 데이터에 LIKE를 사용할 수 있다고 생각한다. – greg0ire
도움을 주셔서 감사하지만 계층 구조 역할은 ** 보안 컨텍스트 **에 저장됩니다 ** 직렬화 된 데이터가 아닙니다. 사용자는 직렬화 된 데이터에서 ** ROLE_EDITOR ** 만 가질 수 있지만 ROLE_WRITER에 액세스 할 수도 있습니다. 문안 인사. 그냥 symfony2에있는 반면, 일반 텍스트 역할을 비교하기 때문에 – ardianys