1

ベーステンプレートbase.html.twig で、このコードを書きます

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

/profileにログインした後、メニューにログアウトリンクが表示されますが、/(および他のページ)にはメニューに登録およびログインリンクが表示されます

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 }

どうすればこの問題を解決できますか?

解決:

私はに変わりpattern: ^/profileますpattern: ^/

4

1 に答える 1

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 %}
于 2013-04-25T09:50:47.100 に答える