symfony - 为什么覆盖错误模板时未捕获异常?

标签 symfony symfony-2.2

我已关注Symfony2.2 documentation on customising error templates并按照 Twig 的描述覆盖 app/Resources/TwigBundle/views/Exception/error.html.twig 处的默认错误模板。

例如,在某些 Controller 中,当数据库实体不存在时,我会抛出自定义 404。我正在这样做:

throw $this->createNotFoundException('Thing not found');

当我的自定义模板存在时,不会捕获此异常,因此我的错误页面永远不会呈现,并且出现 fatal error 。我没有更改任何与异常处理程序有关的内容,所以我不明白为什么覆盖模板会破坏 Symfony 错误渲染功能。

看起来 Twig 异常 Controller 的 showAction 正在执行,但异常仍然被抛出堆栈。

需要做什么来确保捕获并呈现异常?

其他信息:

记录以下内容。 (仅更改客户名称)

[2013-05-22 16:26:22] request.INFO: Matched route "show_thing" (parameters: "_controller": "Client\SiteBundle\Controller\ThingController::indexAction", "id": "thing", "_route": "show_thing") [] []
[2013-05-22 16:26:22] security.INFO: No expression found; abstaining from voting. [] []
[2013-05-22 16:26:22] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "thing not found" at /home/vhosts/client/symfony/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/Controller.php line 149 [] []

最佳答案

我已经解决了。

我的模板有一个未在布局中定义的 block 。

此错误未记录,但足以破坏渲染,

感谢@nifr 的所有帮助。

关于symfony - 为什么覆盖错误模板时未捕获异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16689452/

相关文章:

php - Symfony2 和 Propel 包 : add additional filter to the Propel param converter

symfony2.1.7 Composer 安装 KnpPaginatorBundle

access-control - Symfony2 - 访问控制

php - 禁用 symfony 缓存/appDevDebugProjectContainer.php 怪物

symfony - 处理查询字符串?

php - 如何将 Symfony 表中的第一列设置为与第一行相同的格式?

php - Symfony 防火墙在做什么需要这么长时间?

symfony - URL 在生产中给出内部服务器错误,但在开发中有效?

symfony - 为学说集合中的每个实体构建一个具有复选框的表单

Symfony 2.2 Doctrine ResolveTargetEntities 监听器