Пользователь Symfony2 не определен в контроллере исключений Twig

Я использую свое собственное действие для обработки исключений в ветке.

# Twig Configuration
twig:
    exception_controller:  MyBundle:Default:showException

Проблема в том, что я на самом деле аутентифицирован в своем приложении, но в этом специальном контроллере токен равен нулю.

Есть ли у кого-нибудь идея решить эту проблему, потому что я использую пользовательский объект в шаблоне ветки.


person Senorihl    schedule 05.01.2016    source источник
comment
Вы серьезно не ожидаете, что кто-то поможет вам после предоставления этой маленькой детали. По крайней мере, дайте нам код, который задействован, и/или представление о любых ошибках, которые вы получили.   -  person crafter    schedule 05.01.2016


Ответы (1)


Из документы:

Одной из распространенных ошибок при разработке пользовательских страниц ошибок является использование функции is_granted() в шаблоне ошибки (или в любом родительском шаблоне, унаследованном шаблоном ошибки). Если вы это сделаете, вы увидите исключение, созданное Symfony.

Причина этой проблемы в том, что маршрутизация выполняется до безопасности. Если возникает ошибка 404, уровень безопасности не загружается и, следовательно, функция is_granted() не определена. Решение состоит в том, чтобы добавить следующую проверку перед использованием этой функции:

{% if app.user and is_granted('...') %}
    {# ... #}
{% endif %}
person Frank B    schedule 05.01.2016