1

文档中:

所有的错误模板都存在于 TwigBundle 中。要覆盖模板,我们只需依靠标准方法来覆盖捆绑包中的模板。

和:

要查看默认错误模板的完整列表,请参阅 TwigBundle 的 Resources/views/Exception 目录。

查看后面提到的目录,我可以找到几个文件。我对 403、404 和 500 错误的自定义模板感兴趣,所以我创建了error.html.twig(父模板) 和error403.html.twig,error404.html.twig并且error500.html.twig'TwigBundle:Exception:error.html.twig'(被我的自定义父模板覆盖) 扩展。

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

4

1 回答 1

8

是的,它是正确的。

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

要测试它,您可以暂时关闭调试,方法是切换传递给 app_dev.php 中的 AppKerner 构造函数的第二个参数

$kernel = new AppKernel('dev', false);

那么你就可以

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

抛出新的 \Exception(); // 测试 500 错误页面

抛出新的 \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException();

抛出新的 \Symfony\Component\HttpKernel\Exception\HttpException(403); //测试403错误页面

于 2012-07-24T23:16:51.917 回答