在开发模式下,如果控制器出现严重问题,我会收到带有堆栈跟踪的错误消息。没关系。
但是,我当前的symfony2应用程序是其他应用程序使用的服务。在没有所有以视图为中心的html,css和java脚本的情况下,获取与JSON或其他结构化方式相同的信息会更方便。
我读了How to Customize Error Pages但我不明白如何配置symfony来发出JSON错误消息而不是HTML。
从提到的文档中我了解到已经存在exception.json.twig
文件。如何告诉symfony使用此模板而不是exception.html.twig
?
答案 0 :(得分:0)
很难给出答案,因为您链接到的Symfony文档几乎告诉您需要知道的一切。请注意:
“如果您的侦听器在GetResponseForExceptionEvent上调用setResponse(),则将停止事件传播并将响应发送到客户端。”
因此,如果您只是创建JSON响应并通过setResponse()
进行设置,那么您应该全部设置。
答案 1 :(得分:0)
毕竟我将文件vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Resources/views/Exception/exception.json.twig
复制3次到app/Resources/TwigBundle/views/Exception
并命名副本
error.html.twig
exception_full.html.twig
exception.html.twig
我不乐意复制框架代码,但毕竟它完成了工作。