你会发现如果不设置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)