哪个模板应该在Symfony的2误差定制覆盖?(Which templates should be

2019-06-26 12:08发布

从文档 :

所有的错误模板里面住TwigBundle。 要覆盖的模板,我们只是依靠覆盖住一个包内模板的标准方法。

和:

要查看默认错误模板的完整列表,请参阅TwigBundle的资源/视图/异常目录。

望着后面提到的目录中我能找到几个文件 。 我感兴趣的是为403,404和500错误自定义模板,所以我创建error.html.twig (父模板)和error403.html.twigerror404.html.twigerror500.html.twig从延伸'TwigBundle:Exception:error.html.twig' (我的自定义父模板覆盖)。

它是否正确? 如果另一种错误或异常的抛出,会发生什么?

Answer 1:

是的,它是正确的。

所有其他类型的异常将由内核被捕获并error500.html.twig页面将呈现。

为了测试它,你可以关闭调试了一下,通过切换第二个参数传递给AppKerner构造函数app_dev.php

$内核=新AppKernel( '开发',虚假);

然后你可以

  1. 输入错误的地址,以测试404错误页面
  2. 抛出任何异常,测试500错误页面

抛出新\异常(); //测试500错误页面

抛出新\的Symfony \元器件\ HttpKernel \异常\ AccessDeniedHttpException();
要么
抛出新\的Symfony \元器件\ HttpKernel \异常\ HttpException(403); //测试403错误页面



文章来源: Which templates should be overridden in Symfony 2 error customization?
标签: symfony twig