0

有没有办法访问页面上已登录用户的用户名,Symfony 2.6.1 中的匿名用户可以访问该用户名?

示例:我有主页,登录链接在哪里,如果有用户登录,我想将他的用户名显示为他的帐户链接,而不是登录链接。

如果我使用{{ app.user.username }}它会显示错误

Impossible to access an attribute ("username") on a NULL variable ("")

因为在定义为security.ymlapp.user的页面上是 null 对象。它仅适用于页面,该页面需要在没有.security: falsesecurity: false

4

3 回答 3

0

你应该尝试这样的事情:
为匿名设置一个默认值:

{{ app.user.username|default('Not Logged') }}
于 2015-03-03T13:51:39.113 回答
0

尝试这个

{{ app.security.getToken().getUser() }}
于 2015-03-03T14:03:18.873 回答
0

我不确定我是否正确理解了您的问题,但确实会{{ app.user.username }}引发异常,因为如果您没有登录,则没有用户对象。所以只需检查对象是否存在:

{% if app.user is defined %}
    {# link to account #} 
{% else %}
    {# link to login #}
{% endif %}

如果这个提示不是预期的,请给我们一些代码。

于 2015-03-03T11:58:45.777 回答