在Symfony(在Twig)页面获取用户名,匿名用户可以访问

Get username in Symfony (in Twig) on page, which is accessible to anonymous users

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

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

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

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

因为 app.usersecurity: false 定义为 security.yml 的页面上是空对象。它只适用于需要在没有 security: false.

的防火墙下的页面

我不确定我是否正确理解了你的问题,但 {{ app.user.username }} 确实会抛出一个异常,因为如果你没有登录就没有用户对象。所以只要检查对象是否存在:

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

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

您应该尝试这样的操作:
为匿名设置默认值:

{{ app.user.username|default('Not Logged') }}

试试这个

{{ app.security.getToken().getUser() }}