2016-12-09 3 views
1

사용자 역할을 설정하고 싶습니다. 나는 'ROLE_ADMIN'모든 것이 괜찮 설정하면Fosuser 번들 - 사용자에게 역할을 설정하십시오.

$user = this->getDoctrine()->getRepository('BlogBundle:User')->findOneById('11'); 
    $em = $this->getDoctrine()->getManager(); 
    $t=array('ROLE_ADMIN'); 
    $user->setRoles($t); 
    $em->persist($user); 
    $em->flush(); 
    return new Response('okk'); 

,하지만 난 설정할 때 'ROLE_USER'데이터베이스 셀은 비어 : 나는 아래의 코드를 사용하고 있습니다. 왜?

미리 도움을 주셔서 감사합니다.

+1

는, 생성 된 사용자는 빈 배열로 변환 같은 DB에 저장됩니다 역할 ROLE_USER을 기본적으로 있다 http://stackoverflow.com/questions/18779655/fosuserbundle-admin-area-not-accessible-after-login JSON a : 0 : {} 열 값이 빈 값이나 빈 json 배열의 표현입니까? –

답변

1

사용자 테이블의 역할 열, 단지 역할과 검사의 ROLE_USER

프로그래밍 방법을 사용자

a:0:{} 

이 있어야합니다.

검사 사용자가 (ROLE_USER을 inclusing) 특정 역할

if ($this->get('security.context')->isGranted('ROLE_USER')) { 
    // the user has the ROLE_USER role 
} 

사용이 정말 ROLE_USER

php app/console fos:user:promote 
이 있는지 다시 한 번 확인하는 또 하나의 방법은 또한

$user->getRoles() 

거기가있는 경우

메시지가 표시되면 사용자 이름 뒤에을 입력하십시오.

는 그

사용자 "[email protected]"이미 않았다 "ROLE_USER"역할을 명시해야한다.

0

FOS 사용자 번들에서 모든 사용자는 ROLE_USER 역할을가집니다. 이 역할을 추가/저장하는 것은 불필요합니다.

FOSUserBundle의 코드베이스에서 찾고있는 경우 역할은 UserInterface 클래스의 ROLE_DEFAULT으로 별칭이 지정됩니다.

+0

답장을 보내 주셔서 감사합니다. – appson

관련 문제