当使用 {% render "Bundle:Controller:Action" %} 返回:
throw $this->createNotFoundException('Error - 404');
它成功地导致页面在开发模式下出错,但在生产模式下,页面呈现除了 {% render %} 部分,现在它只是空白。
我希望整个页面显示 404 页面,就像在父操作中引发异常一样。
有没有人有什么建议?
谢谢
它成功地导致页面在开发模式下出错,但在生产模式下,页面呈现除了 {% render %} 部分,现在它只是空白。
这似乎是合法的。你用
{% render "Bundle:Controller:Action" %}
只呈现网页的一部分,例如菜单。如果特定的渲染操作抛出 404,它只会影响网站的这一部分,而不是整个页面。
此外,为什么整个页面明明渲染得很好,却被只影响页面一部分的 404 错误页面挡住了?这不是好的做法。如果错误非常重要,那么您应该在控制器级别的更高实例上触发它。
要恢复错误而不是静默失败,您只需在 with 对象之后添加 ignore_errors 选项。
例如
{% render 'Bundle:Controller:Action' with { }, { 'ignore_errors' : false } %}