Php 如何在Yi2中仅以json格式响应错误?

Php 如何在Yi2中仅以json格式响应错误?,php,yii2,response,Php,Yii2,Response,像往常一样,Yii2在site/error文件中以HTML格式显示错误。如何使所有错误以JSON格式返回?您可以在控制器的特定操作中更改响应的格式,例如: public function actionYourAction($id_survey) { \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; // return JSON Array or JSON Object here. } 但在您

像往常一样,Yii2在site/error文件中以HTML格式显示错误。如何使所有错误以JSON格式返回?

您可以在控制器的特定操作中更改响应的格式,例如:

public function actionYourAction($id_survey) {
    \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
    // return JSON Array or JSON Object here.
}
但在您的情况下,必须首先覆盖错误操作,如下所述:

请阅读,这是否回答了您的问题@谢谢,下次会的better@DefinitelynotRafal感谢您的关注,但在您的链接中,我发现只有当项目中的全局响应格式为JSON时,才能自定义错误响应。在我的例子中,我只想更改错误的响应format@AhrorGaibnazarov您希望以JSON格式返回所有错误。只有通过创建自己的错误处理程序或编辑默认的错误处理程序,才能得到这个结果。我建议您不要编辑核心文件。如果希望它作为JSON返回,则需要新的错误处理程序来执行此操作。你是怎么做到的?再次检查我的链接,看看actionError方法发生了什么。。。它呈现一个文件,这是你看到的,这是你的html格式。因此,在您的情况下,您不希望呈现文件。您希望将数据输出为json字符串。