Symfony:如何在Formtype或security.authorization_checker中获取当前用户角色

Zwe*_*012 1 security authentication symfony symfony-2.3 symfony-3.1

我有一个Formtype,我需要访问当前的Useres ROLE,因为我想决定哪些字段显示.是否可以访问security.authorization_checker例如,以便我可以创建一个if子句:

if (!$this->get('security.authorization_checker')->isGranted('IS_ADMIN')) { ....
Run Code Online (Sandbox Code Playgroud)

Mau*_*iya 5

您可以将表单注册为服务,然后security.authorization_checker作为参数传递,请检查下面的示例代码.

form.service.id:
    class: YourFormClass
    arguments: ['@security.authorization_checker']
    tags:
        - { name: form.type }
Run Code Online (Sandbox Code Playgroud)

然后在你的表单类中创建__construct(AuthorizationChecker $authorizationChecker)方法然后AuthorizationChecker用来检查ROLE

  • @MaulikSavaliya完全同意你的意思,我们可以在任何版本的symfony形式中使用构造方法. (2认同)