2014-01-27 4 views
5

Попытка отобразить имя пользователя, вошедшего в систему пользователя, поставивНевозможно получить доступ к атрибуту («имя пользователя») на NULL переменной («»)

{{ app.user.username }} 

в base.html.twig дает мне ошибку как

Impossible to access an attribute ("username") on a NULL variable ("") in ::base.html.twig at line 45 

Acessing это как

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

приводит к следующей ошибке.

Impossible to invoke a method ("getUser") on a NULL variable ("") 

Как разрешить зарегистрированные логины пользователя во всем мире в symfony? Как исправить ошибку?

ответ

17

Попробуйте проверить первый, если пользователь существует, а затем получить его имя:

{% if app.user %} 
    {{ app.user.username }} 
{% endif %} 

или сделать это с тройным оператором:

{{ app.user ? app.user.username }} 

Вы можете использовать default Twig фильтра для установки значения по умолчанию, если имя пользователя пуста:

{{ app.user.username|default('undefined') }} 
+0

да. проблема моя «app.user» имеет значение null. Но мой пользователь вошел в систему как admin.Ho w выяснить эту проблему? –

+1

Получил! Проблема заключалась в том, что страница была освежающей, чтобы увидеть результат не за брандмауэром. Спасибо за вашу помощь. –

Смежные вопросы