所有错误模板都存在于TwigBundle中。要覆盖 模板,我们只需依靠标准方法来覆盖 生活在捆绑包中的模板。
和
要查看默认错误模板的完整列表,请参阅 资源/视图/ TwigBundle的Exception目录。
查看后面提到的目录i can find several files。我对403,404和500错误的自定义模板感兴趣,所以我创建了error.html.twig
(父模板)和error403.html.twig
,error404.html.twig
和error500.html.twig
,它们来自{{{ 1}}(由我的自定义父模板覆盖)。
这是对的吗?如果抛出另一种错误或异常会发生什么?
答案 0 :(得分:8)
是的,这是正确的。
内核将捕获所有其他类型的异常,并且将呈现error500.html.twig页面。
要测试它,您可以暂时关闭调试,方法是在app_dev.php中切换传递给AppKerner构造函数的第二个参数
$ kernel = new AppKernel('dev',false);
然后你可以
抛出新\ Exception(); //测试500错误页面
抛出新的 \的Symfony \元器件\ HttpKernel \异常\ AccessDeniedHttpException();
或
扔新的 \的Symfony \元器件\ HttpKernel \异常\ HttpException(403); //测试403错误页面