2

すべてのアイテムがすべてのユーザーに表示されるメニューがあり、symfony2 で特定の ROLE ユーザーに対して特定のアイテムを非表示/表示したい。

たとえば、私は

<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>

ログインしていない場合でも、すべてのユーザーにログアウトが表示されるようになりました。ユーザーが認証されているかどうかを小枝に確認させてから選択するにはどうすればよいですか

<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 に答える