在开发模式下,如果控制器有严重问题,我会收到一条带有堆栈跟踪的漂亮 erorr 消息。没关系。
但是,我当前的symfony2应用程序是其他应用程序使用的服务。获取与JSON或其他结构化方式相同的信息,而无需所有以视图为中心的html,css和java脚本,这将更加方便。
我阅读了如何自定义错误页面,但我不明白如何将symfony配置为发出JSON错误消息而不是HTML。
从上述文档中,我了解到已经有一个exception.json.twig
文件可以执行此操作。我怎样才能告诉symfony使用这个模板而不是exception.html.twig
?
很难给出答案,因为你链接到的Symfony文档几乎告诉你你需要知道的一切。 注意这一点:
"如果你的侦听器在 GetResponseForExceptionEvent 上调用 setResponse(),事件传播将被停止,响应将被发送到客户端。
因此,如果您只是创建 JSON 响应并通过 setResponse()
进行设置,您应该已经全部设置好了。
毕竟我复制了 3 次vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Resources/views/Exception/exception.json.twig
文件以app/Resources/TwigBundle/views/Exception
并命名
-
error.html.twig
-
exception_full.html.twig
-
exception.html.twig
我不喜欢复制框架代码,但毕竟它可以完成这项工作。