getData(true); // 如果已经是标准响应格式,则不处理 if (isset($content['error']) && isset($content['body']) && isset($content['message'])) { return $response; } // 处理错误响应 if ($response->getStatusCode() >= 400) { $error = 500; $message = ''; // 标准的错误响应 if (isset($content['message'])) { $message = $content['message']; } // 根据状态码设置不同的错误码 if ($response->getStatusCode() === 401) { $error = 401; $message = $message ?: __('middleware.api.login'); } elseif ($response->getStatusCode() === 403) { $error = 403; $message = $message ?: __('middleware.api.permission'); } elseif ($response->getStatusCode() === 404) { $error = 404; $message = $message ?: __('middleware.api.resource'); } elseif ($response->getStatusCode() === 422) { $error = 422; $message = $message ?: __('middleware.api.data'); } else { $message = $message ?: __('middleware.api.system'); } // 重新包装响应 $newContent = [ 'error' => $error, 'body' => (object)[], 'message' => $message, ]; // 如果是验证错误,添加错误详情 if ($response->getStatusCode() === 422 && isset($content['errors'])) { $newContent['body'] = ['validation_errors' => $content['errors']]; } $response->setData($newContent); $response->setStatusCode(200); } // 处理成功响应 else { // 重新包装响应 $response->setData([ 'error' => 0, 'body' => $content, 'message' => '', ]); } } return $response; } }