是否有一种方法可以访问页面上登录用户的用户名,Symfony 2.6.1中的匿名用户可以访问该用户名?
示例:我有主页,那里有登录链接,如果有用户登录,我想把他的用户名显示为他的帐户链接,而不是登录链接。
如果我使用{{ app.user.username }}
,它将显示错误
Impossible to access an attribute ("username") on a NULL variable ("")
因为在定义了security: false
的页面上,app.user
是null对象,所以它是security.yml。它只适用于需要在没有security: false
的防火墙下的页面。
你应该试试这样的方法:
为匿名设置默认值:
{{ app.user.username|default('Not Logged') }}
我不确定我是否正确理解了你的问题,但{{ app.user.username }}
确实抛出了一个异常,因为如果你没有登录,就没有用户对象。所以只需检查对象是否存在:
{% if app.user is defined %}
{# link to account #}
{% else %}
{# link to login #}
{% endif %}
如果这个提示不是显而易见的,请给我们一些代码。
试试这个
{{ app.security.getToken().getUser() }}