2

我有一个菜单,所有项目都显示给所有用户,我想在 symfony2 中向特定角色用户隐藏/显示特定项目。

例如,我有

<ul class="navigation">
    <li><a href="{{ path('homepage') }}">{{ 'menu.home'|trans }}</a></li>
    <li><a href="{{ path('guest') }}">{{ 'menu.articles'|trans }}</a></li>
    <li><a href="{{ path('category') }}">{{ 'menu.categories'|trans }}</a></li>
    <li><a href="{{ path('user') }}">{{ 'menu.users'|trans }}</a></li>
    <li><a href="{{ path('logout') }}">{{ 'menu.logout'|trans }}</a></li>
</ul>

现在 Logout 出现给所有用户,即使他们没有登录。如何让 twig 检查用户是否经过身份验证,然后选择

<li><a href="{{ path('login') }}">{{ 'menu.login'|trans }}</a></li>?

4

1 回答 1

3

Twig做以下检查:

{% if app.user %}
    <li><a href="{{ path('logout') }}">{{ 'menu.logout'|trans }}</a></li>
{% else %}
    <li><a href="{{ path('login') }}">{{ 'menu.login'|trans }}</a></li> 
{% endif %}

如果您有不同的角色并且您希望根据用户角色呈现页面的某些部分,您可以进行下一步检查:

{% if is_granted('YOUR_ROLE') %} ... {% endif %}
于 2012-08-12T19:31:46.287 回答