无法检查 Symfony2 twig 中新添加的角色

Can not check new added role in Symfony2 twig

security.yml 下,我添加了名为 ROLE_PUBLISHER

的新角色
access_control:
    - { path: ^/publisher/,           roles: [ ROLE_PUBLISHER ] }

role_hierarchy:
        ROLE_TC_ADMIN:                  [ ROLE_ALLOWED_TO_SWITCH ]
        ROLE_PUBLISHER:                 [ ROLE_PUBLISHER_UNCONFIRMED ]

角色工作正常,它用于生产环境,但我只是注意到如果登录用户具有正确的角色,我无法签入 twig

这个很好用,我收到 'user' 个字

{% if is_granted('ROLE_USER') %}'user'{% else %}''{% endif %}

即使我以发布者身份登录,这个也不起作用(始终为空字符串)

{% if is_granted('ROLE_PUBLISHER') %}'publisher'{% else %}''{% endif %}

是否有可能用户有两个角色 ROLE_USERROLE_PUBLISHER 而 twig 总是检查第一个角色?

是的,我没看错,用户有两个角色,twig 一直在检查第一个。所以解决方案是:

{% set user_role = '' %}
{% for user in app.user.roles %}
    {% if user == 'ROLE_PUBLISHER' %}
        {% set user_role = 'publisher' %}
    {% endif %}
{% endfor %}