Symfony2多个错误页面

时间:2012-12-28 02:39:46

标签: php templates symfony twig

我的Symfony应用程序大部分分为两个子目录,分别用于每个bundle的控制器“Frontend”和“Backend”。我想要做的是前端和后端404错误有2个不同的错误页面。它很容易覆盖通用的枝条错误模板,但我想知道什么是确定它是否应该渲染前端或后端错误模板的最佳方法。我是否必须为此重写Twig异常处理,或者有一些内置功能可以做到这一点。谢谢!

2 个答案:

答案 0 :(得分:0)

后端用户是仅使用后端还是他们也可能使用前端?如果经过身份验证的用户只使用后端,那么您只需在404模板中添加if语句即可。

{% if is_granted('ROLE_ADMIN') %}
    {# authenticated 404 markup #}
    ...
{% else %}
    {# standard 404 markup #}
    ...
{% endif %}

答案 1 :(得分:-2)

我已经为该功能制作了一个捆绑包,它可以使用" kernel.exception_listener"监听器和" kernel.exception"文档(http://symfony.com/doc/current/cookbook/controller/error_pages.html#use-kernel-exception-event)中描述的事件。

使用此捆绑包,您可以:

  1. 从您想要的路线的正则表达式更改树枝例外模板
  2. 仅针对某些http状态代码更改树枝例外模板
  3. 启用/禁用调试模式的自定义模板
  4. 链接到捆绑包(麻省理工学院许可证):https://github.com/Kwrz/TwigException

    希望它有所帮助!