你会发现如果不设置api返回异常格式的话,真的是看着都崩溃,尤其你用postman来请求的时候,yii默认会把页面的异常样式返回去,所以就是一堆的css啊 HTML标签啊,很难找错误地方 所以修改异常错误返回格式,这样就可以清楚的看出返回错误,方便调试修改。下面是配置:
'response' => [
'class' => 'yii\web\Response',
'on beforeSend' => function ($event) {
$response = $event->sender;
$response->data = [
'code' => $response->statusCode,
'message' => $response->statusText,
'data' => $response->data,
];
if($response->statusCode == 500){
if(YII_DEBUG){
$exception = Yii::$app->getErrorHandler()->exception;
$response->data['data'] = [
'name' => ($exception instanceof Exception || $exception instanceof ErrorException) ? $exception->getName() : 'Exception',
'type' => get_class($exception),
'file' => $exception->getFile(),
'errorMessage' => $exception->getMessage(),
'line' => $exception->getLine(),
'stack-trace' => explode("\n", $exception->getTraceAsString()),
];
if ($exception instanceof Exception) {
$response->data['data']['error-info'] = $exception->errorInfo;
}
}else{
$response->data['data'] = '内部服务器错误';
}
}
$response->format = yii\web\Response::FORMAT_JSON;
},
],
Comments (0)