0

当使用 {% render "Bundle:Controller:Action" %} 返回:

throw $this->createNotFoundException('Error - 404');

它成功地导致页面在开发模式下出错,但在生产模式下,页面呈现除了 {% render %} 部分,现在它只是空白。

我希望整个页面显示 404 页面,就像在父操作中引发异常一样。

有没有人有什么建议?

谢谢

4

2 回答 2

1

它成功地导致页面在开发模式下出错,但在生产模式下,页面呈现除了 {% render %} 部分,现在它只是空白。

这似乎是合法的。你用

{% render "Bundle:Controller:Action" %}

只呈现网页的一部分,例如菜单。如果特定的渲染操作抛出 404,它只会影响网站的这一部分,而不是整个页面。


此外,为什么整个页面明明渲染得很好,却被只影响页面一部分的 404 错误页面挡住了?这不是好的做法。如果错误非常重要,那么您应该在控制器级别的更高实例上触发它。

于 2013-02-19T17:20:24.560 回答
0

要恢复错误而不是静默失败,您只需在 with 对象之后添加 ignore_errors 选项。

例如

{% render 'Bundle:Controller:Action' with { }, { 'ignore_errors' : false } %}
于 2013-02-20T22:13:05.293 回答