2017-03-22 4 views
0

Formtype이 있는데 현재 사용중인 ROLE에 액세스해야합니다. 어떤 필드를 표시할지 결정해야하기 때문입니다. 나는 할 수 있도록 는 예를 들어 security.authorization_checker에 접근 할 수있는 조항 경우 :Symfony : Formtype 또는 security.authorization_checker에서 현재 사용자 역할을 얻는 방법

if (!$this->get('security.authorization_checker')->isGranted('IS_ADMIN')) { .... 
+0

역할을 확인하는 AuthorizationChecker를 사용하면 위와 같이 할 수 있습니다. –

답변

2

당신은 서비스로 양식을 등록 할 수 있습니다 다음, 인수로 security.authorization_checker을 통과 샘플 코드 아래에 확인하십시오.

form.service.id: 
    class: YourFormClass 
    arguments: ['@security.authorization_checker'] 
    tags: 
     - { name: form.type } 

그런 다음 폼 클래스에 __construct(AuthorizationChecker $authorizationChecker) 방법을 만든 다음 다음 컨테이너를 주입 서비스로 그 FormType을 할 수

+0

아니요, symfony 3에서 fromtype에 생성자를 사용할 수 없습니다. – Zwen2012

+1

아니요, symfony 3.2를 사용하고 있습니다. form에 __construct()를 추가 할 수 있습니다. symfony3 *이 formType에서 허용되지 않는 __construct를 찾았습니까? 이벤트 symfony3.2 문서에서 __construct를 찾을 수 있습니다. http://symfony.com/doc/current/form/use_empty_data.html –

+1

@MaulikSavaliya가 전적으로 동의합니다. 모든 버전의 심포니 형식으로 구성 방법을 사용할 수 있습니다. –