2013-04-25 17 views
1

在基本模板base.html.twig我寫這篇文章的代碼的Symfony2:登錄表單的工作真的,但我無法獲得登錄信息{{app.user}}

{% if app.user %} 
    <a href="{{ path('logout') }}">Logout</a> 
    {% else %} 
    <a href="{{ path('register') }}">register</a> | 
    <a href="{{ path('login') }}">Login</a> 
    {% endif %} 

LOGIN 在/檔案I看到/(和其他頁)在菜單 註銷鏈接,但 我看到註冊並在菜單登錄鏈接

security: 
    ... 
    providers: 
     administartors: 
      entity: { class: DotArtBundle:User, property: username } 

    firewalls: 
     profile: 
      pattern: ^/profile 
      http_basic: ~ 
      anonymous: ~ 
      form_login: 
       check_path: /profile/login_action 
       login_path: /login 
       use_forward: false 
       username_parameter: _username 
       password_parameter: _password 
      logout: 
       path: /profile/logout 
       target:/
       invalidate_session: false 
     login: 
      pattern: ^/login 
      security: false 

    access_control: 
     - { path: ^/login,   roles: IS_AUTHENTICATED_ANONYMOUSLY } 
     - { path: ^/profile,  roles: ROLE_USER } 
     - { path: ^/profile/admin, roles: ROLE_ADMIN } 

我怎麼湊ld解決這個問題?

解決方案:

更改pattern: ^/profilepattern: ^/

回答

2

在側前端,根據該登錄/退出檢查。使用is_granted應該對未來的更新更可靠。

{% if is_granted('IS_AUTHENTICATED_REMEMBERED') %} 
    <a href="{{ path('logout') }}">Logout</a> 
{% else %} 
    <a href="{{ path('register') }}">register</a> | 
    <a href="{{ path('login') }}">Login</a> 
{% endif %}