의 역할 단지 목록을 원하지 않는다.
에 MyProject/UserBundle/법인/저장소/UserRepository
public function getRoles($userId)
{
$queryBuilder = $this->createQueryBuilder('u');
$queryBuilder
->select('u.id, u.roles AS user_roles, g.roles AS group_roles')
->leftJoin('u.groups', 'g')
->andWhere('u.id = :user_id')
->setParameter('user_id', $userId);
return $queryBuilder->getQuery()->getArrayResult();
}
에 MyProject/UserBundle/서비스/UserService
public function getUserRoles($user)
{
$groupRoles = $this->repository->getRoles($user->getId());
$roles = array('user_roles' => array(), 'group_roles' => array());
foreach ($groupRoles as $groupRole) {
$roles['user_roles'] = array_merge($roles['user_roles'], $groupRole['user_roles']);
$roles['group_roles'] = array_merge($roles['group_roles'], $groupRole['group_roles']);
}
return $roles;
}
이 나에게 당신 가정이
"roles":{
"user_roles":[],
"group_roles":["ROLE_ADMIN","ROLE_ONE","ROLE_TWO","ROLE_BEST"]
}
가능한 복제 [심포니 전체 역할 계층 구조를 검색하는 방법 (http://stackoverflow.com/questions/8928085/how-to-retrieve-full-role -hierarchy-in-symfony) –
나는 단지 신이 난 사람들이 아닌 인증 된 사용자의 역할을 원합니다. – mike
좋습니다. 다른 질문이 도움이 될 수 있습니다 : http://stackoverflow.com/questions/11246774/symfony2-getting-the-list- form-user-roles-in-formbuilder (첫 번째 대답이 아님) –