Symfony2 用户未在 Twig 异常控制器中定义
Symfony2 User not defined in Twig Exception Controller
我使用自己的操作来处理 twig 中的异常。
# Twig Configuration
twig:
exception_controller: MyBundle:Default:showException
问题是,我实际上已通过我的应用程序的身份验证,但在这个特殊的控制器中,令牌为空。
有人知道解决这个问题吗,因为我在 twig 模板中使用了用户对象。
来自docs:
设计自定义错误页面时的一个常见陷阱是在错误模板(或错误模板继承的任何父模板)中使用 is_granted() 函数。如果这样做,您将看到 Symfony 抛出的异常。
这个问题的原因是路由在安全之前完成。如果发生 404 错误,则不会加载安全层,因此 is_granted() 函数未定义。解决办法是在使用这个函数前加上如下检查:
{% if app.user and is_granted('...') %}
{# ... #}
{% endif %}
我使用自己的操作来处理 twig 中的异常。
# Twig Configuration
twig:
exception_controller: MyBundle:Default:showException
问题是,我实际上已通过我的应用程序的身份验证,但在这个特殊的控制器中,令牌为空。
有人知道解决这个问题吗,因为我在 twig 模板中使用了用户对象。
来自docs:
设计自定义错误页面时的一个常见陷阱是在错误模板(或错误模板继承的任何父模板)中使用 is_granted() 函数。如果这样做,您将看到 Symfony 抛出的异常。
这个问题的原因是路由在安全之前完成。如果发生 404 错误,则不会加载安全层,因此 is_granted() 函数未定义。解决办法是在使用这个函数前加上如下检查:
{% if app.user and is_granted('...') %}
{# ... #}
{% endif %}