我正在使用 yii2 rest api 模块,其中 Controller 类扩展了一个 ActiveController,我在处理错误异常时遇到了问题。当 Yii REST 框架使用 HTTP 状态代码(如 500、400)时,我需要一个正确的 json 响应。如果我在访问 api 上尝试错误的方法调用,它会显示一个异常对象
object(yii\web\NotFoundHttpException)#170 (8) { ["statusCode"]=> int(404)
在我的 config/main.php 中设置响应
'response' => [
'class' => 'yii\web\Response',
'on beforeSend' => function ($event) {
$response = $event->sender;
if ($response->data !== null) {
$response->data = [
'success' => $response->isSuccessful,
'data' => $response->data,
];
$response->statusCode = 200;
}
},
]
它应该显示如下消息:
{
"status": 0,
"error_code": 400,
"message": "Bad request"
}
我尝试使用此链接在 Controller 中添加行为动词:click here
我的整个应用程序都是基于 api 所以请帮助我处理各种错误
最佳答案
也取决于您的服务器配置,但通常您不需要这些。这应该足够了:
'response' => [
'format' => yii\web\Response::FORMAT_JSON,
'charset' => 'UTF-8',
],
这是使用这些配置的输出示例:https://yii2-f4a.rhcloud.com/api/tags
关于php - yii2 rest api异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35218127/