代码之家  ›  专栏  ›  技术社区  ›  Senorihl

Twig异常控制器中未定义Symfony2用户

  •  0
  • Senorihl  · 技术社区  · 10 年前

    我使用自己的操作来处理树枝中的异常。

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

    问题是,我实际上对我的应用程序进行了身份验证,但在这个特殊的控制器中,令牌为空。

    有人有什么想法来解决这个问题吗,因为我在twig模板中使用了user对象。

    1 回复  |  直到 10 年前
        1
  •  -1
  •   Frank B    10 年前

    docs :

    设计自定义错误页时的一个常见陷阱是在错误模板(或错误模板继承的任何父模板)中使用is_granted()函数。如果你这样做,你会看到Symfony抛出一个异常。

    这个问题的原因是路由在安全之前完成。如果发生404错误,则不会加载安全层,因此is_granted()函数未定义。解决方案是在使用此函数之前添加以下检查:

    {% if app.user and is_granted('...') %}
        {# ... #}
    {% endif %}