2012-08-12 46 views
2

我有一個菜單,所有項目都顯示給所有用戶,我想隱藏/向symfony2中的特定ROLE用戶顯示特定項目。如何將「登錄」設置爲匿名文本,「註銷」設置爲樹枝和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> 

現在退出似乎給所有用戶,即使他們沒有登錄。我怎樣才能讓樹枝檢查用戶是否已經驗證過了,然後選擇

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

+0

我知道{%if app.user%}但這不檢查角色。 – Radolino 2012-08-12 19:38:41

回答

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 %} 
相關問題