2015-03-03 17 views
0

有沒有辦法在頁面上訪問登錄用戶的用戶名,這在Symfony 2.6.1中對匿名用戶是可訪問的?在頁面上提供Synfomy(在Twig中)的用戶名,匿名用戶可以訪問

例如: 我有主頁,其中是登錄鏈接,如果有用戶登錄,我想顯示他的用戶名作爲鏈接到他的帳戶,而不是登錄鏈接。

如果我使用{{ app.user.username }}它會顯示錯誤

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

因爲app.user是與定義security: false頁空對象是security.yml。它只能在頁面上工作,需要在沒有security: false的防火牆下工作。

回答

0

你應該嘗試這樣的事:
設置默認值的匿名:

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

林不知道如果我理解正確的話您的問題,但它真的{{ app.user.username }}拋出一個異常,因爲如果您還沒有登錄沒有用戶對象,所以只是檢查對象存在:

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

如果這個提示不是預期的,給我們一些代碼。

+0

但我希望得到的用戶名,即使 「app.user」沒有定義。可能嗎? – 2015-03-03 12:28:30

+0

然後你必須通過id獲取用戶對象。像'$ this-> getDoctrine() - > getRepository('User') - > find($ id)''。 – ahinze 2015-03-03 13:20:48

0

試試這個

{{ app.security.getToken().getUser() }} 
相關問題