Symfony 在布局中登录和注册链接

Symfony 在布局中登录和注册链接,symfony,twig,sylius,Symfony,Twig,Sylius,有人能解释一下,一旦用户登录,我如何在我的布局中添加“登录”和“注册”链接,这些链接将更改为“注销”和“我的帐户”链接 我尝试了下面的代码,但不起作用 {% if is_granted('ROLE_USER') %} <a class="dark-grey-small bold" href="{{ path('sylius_shop_account_dashboard') }}">{{ 'sylius.ui.my_account'|trans }}</a>

有人能解释一下,一旦用户登录,我如何在我的布局中添加
“登录”
“注册”
链接,这些链接将更改为
“注销”
“我的帐户”
链接

我尝试了下面的代码,但不起作用

  {% if is_granted('ROLE_USER') %}
    <a class="dark-grey-small bold" href="{{ path('sylius_shop_account_dashboard') }}">{{ 'sylius.ui.my_account'|trans }}</a>
    <a class="dark-grey-small bold" href="{{ path('sylius_shop_logout') }}">{{ 'sylius.ui.logout'|trans }}</a>
  {% else %}
    <a class="dark-grey-small bold" href="{{ path('sylius_shop_login') }}">{{ 'sylius.ui.login'|trans }}</a>
    <a class="dark-grey-small bold" href="{{ path('sylius_shop_register') }}">{{ 'sylius.ui.register'|trans }}</a>
  {% endif %}
你就快到了

我相信,如果在用户注册时分配
角色\u USER
,您的代码将起作用

如果您只想检查用户是否已登录,可以使用:

{% if app.user %}
    # user is logged in
 {% else %}
    # user is not logged in
 {% endif %}
你就快到了

我相信,如果在用户注册时分配
角色\u USER
,您的代码将起作用

如果您只想检查用户是否已登录,可以使用:

{% if app.user %}
    # user is logged in
 {% else %}
    # user is not logged in
 {% endif %}

我确实使用了这个
{%if'is'u AUTHENTICATED'u FULLY')%}
。对我来说,检查角色\用户并不总是有效的。请注意,is_grated在当前会话中使用角色:因此,如果您有一个新角色,但没有登录/退出,它将无法工作。请注意,正如文档所述:

完全验证了吗?虽然不是一个角色,但它的行为有点像一个角色,而且 每个已登录的用户都将具有此功能


我确实使用了这个
{%if'is'u AUTHENTICATED'u FULLY')%}
。对我来说,检查角色\用户并不总是有效的。请注意,is_grated在当前会话中使用角色:因此,如果您有一个新角色,但没有登录/退出,它将无法工作。请注意,正如文档所述:

完全验证了吗?虽然不是一个角色,但它的行为有点像一个角色,而且 每个已登录的用户都将具有此功能


嗯,感谢@hoover_D和@113408的回复,但经过多次尝试和错误,我终于解决了这个问题

在security.yml文件中,我更改了

sylius.security.shop_regex:'^/(?!admin | api/*| api$| media/*)[^/]+'

sylius.security.shop_regex:'/'


现在被授权(“角色用户”)可以在每个页面上工作,包括主页。

好吧,感谢@hoover\u D和@113408的回复,但是经过多次尝试和错误,我成功地解决了这个问题

在security.yml文件中,我更改了

sylius.security.shop_regex:'^/(?!admin | api/*| api$| media/*)[^/]+'

sylius.security.shop_regex:'/'


现在每个页面(包括主页)上都有“角色用户”功能。

非常感谢@hoover\D我尝试了你的建议,但“角色用户”只在主页上失败,而“角色用户”在每个页面上都失败(“完全认证”)。我想知道这是否是由于我的security.yml文件中的一个条目造成的,但是这些帖子的字符限制使我无法发布有问题的条目。非常感谢@hoover\D我尝试了你的建议,但是在哪里授予(“角色用户”)只在主页上失败,在每个页面上授予(“完全验证”)失败。我想知道这是否是由于我的security.yml文件中的一个条目造成的,但是这些帖子的字符限制使我无法发布有问题的条目。谢谢你的评论@113408。不幸的是,就像上面胡佛的建议一样,where is_grated('ROLE_USER')只在主页上失败,app.USER在每个页面上都失败。@NickChambers您使用的是什么版本的symfony?这是我在security.yml文件中的内容。我用的是Sylius 1.4和Symfony 4.2.3。谢谢。谢谢@113408我尝试了你的建议,但它没有在主页上显示任何内容,而是在所有其他页面上显示了用户名(电子邮件地址)。谢谢你的建议,我非常感谢。谢谢你的评论@113408。不幸的是,就像上面胡佛的建议一样,where is_grated('ROLE_USER')只在主页上失败,app.USER在每个页面上都失败。@NickChambers您使用的是什么版本的symfony?这是我在security.yml文件中的内容。我用的是Sylius 1.4和Symfony 4.2.3。谢谢。谢谢@113408我尝试了你的建议,但它没有在主页上显示任何内容,而是在所有其他页面上显示了用户名(电子邮件地址)。谢谢你的建议,我真的很感激。