Laravel 7 : 将失败的验证响应设为 200 而不是 422
Laravel 7 : Make failed validation response 200 instead of 422
我正在创建一个 Laravel 7 应用程序。
我创建了一个 POST API 接受 2 个参数并添加验证。当验证器失败时,它会给出响应“422 unprocessable entity”并给出 JSON 格式的错误,如下所示:
{
"message": "The given data was invalid.",
"errors": {
"mobile_no": [
"The mobile no must be 10 digits."
]
}
}
现在我想要错误代码为 200 而不是 422 的相同响应。
我该如何实现?
您可以为此使用错误处理程序。
https://laravel.com/docs/7.x/errors#render-method
public function render($request, Exception $exception)
{
if ($condition)) {
return response()->json($content, 200);
}
return parent::render($request, $exception);
}
检查你需要的内部函数异常,并用成功的响应替换它
对于laravel 8,我覆盖了app/Exceptions/Handler中的方法invalidJson。php
protected function invalidJson($request, ValidationException $exception)
{
return response()->json([
'message' => $exception->getMessage(),
'errors' => $exception->errors(),
], 200); //parent method return 422
}
我正在创建一个 Laravel 7 应用程序。
我创建了一个 POST API 接受 2 个参数并添加验证。当验证器失败时,它会给出响应“422 unprocessable entity”并给出 JSON 格式的错误,如下所示:
{
"message": "The given data was invalid.",
"errors": {
"mobile_no": [
"The mobile no must be 10 digits."
]
}
}
现在我想要错误代码为 200 而不是 422 的相同响应。
我该如何实现?
您可以为此使用错误处理程序。 https://laravel.com/docs/7.x/errors#render-method
public function render($request, Exception $exception)
{
if ($condition)) {
return response()->json($content, 200);
}
return parent::render($request, $exception);
}
检查你需要的内部函数异常,并用成功的响应替换它
对于laravel 8,我覆盖了app/Exceptions/Handler中的方法invalidJson。php
protected function invalidJson($request, ValidationException $exception)
{
return response()->json([
'message' => $exception->getMessage(),
'errors' => $exception->errors(),
], 200); //parent method return 422
}