Laravel 修改验证异常的响应格式实例代码详解
2020-06-20 11:48
661 查看
Laravel 默认验证不通过后响应格式如下,有时此格式并不满足自己要求,需要修改格式。
// status 422 { "message":"The given data was invalid.", "errors":{ "url":[ "url 无效的格式" ] } }
当 Request 验证失败时会抛出 ValidationException
异常,最终交由全局异常Handler
类处理。Handler
继承自Illuminate\Foundation\Exceptions\Handler
,框架中的Handler
类调用render
处理异常并进行响应,针对于ValidationException
异常又调用了convertValidationExceptionToResponse
方法来处理。代码
protected function convertValidationExceptionToResponse(ValidationException $e, $request) { if ($e->response) { return $e->response; } return $request->expectsJson() ? $this->invalidJson($request, $e) : $this->invalid($request, $e); }
expectsJson()
区分是 ajax 请求还是表单请求,然后分别做处理。
protected function invalidJson($request, ValidationException $exception) { return response()->json([ 'message' => $exception->getMessage(), 'errors' => $exception->errors(), ], $exception->status); }
追踪到invalidJson()
,发现他就是用来处理参数验证异常响应格式的方法。在App\Exceptions\Handler
类中,重写invalidJson()
方法即可。
protected function invalidJson($request, ValidationException $exception) { return response()->json([ 'code' => 0, 'data' => $exception->errors(), ], $exception->status); }
最终,验证失败的响应格式如下
// status 422 { "code": 0, "data":{ "url":[ "url 无效的格式" ] } }
总结
到此这篇关于Laravel 修改验证异常的响应格式的代码详解的文章就介绍到这了,更多相关Laravel异常响应格式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
相关文章推荐
- AngularJS 输入验证详解及实例代码
- PHP JSON格式数据交互实例代码详解_php技巧_脚本之家
- laravel-admin 与 vue 结合使用实例代码详解
- 表单验证正则表达式实例代码详解
- Laravel5.1 框架表单验证操作实例详解
- iOS多线程GCD之队列和任务详解(实例代码验证篇)
- JS 正则表达式验证密码、邮箱格式的实例代码
- PHP JSON格式数据交互实例代码详解
- PHP JSON格式数据交互实例代码详解
- node-http-proxy修改响应结果实例代码
- IOS代码修改音量实例详解
- jQuery Validate格式验证功能实例代码(包括重名验证)
- JavaWeb Refresh响应头代码实例详解
- Laravel 5.5 的自定义验证对象/类示例代码详解
- JS验证邮箱格式是否正确 实例代码
- vue elementui el-form rules动态验证的实例代码详解
- jQuery+ajax实现修改密码验证功能实例详解
- JavaScript 身份证号有效验证详解及实例代码
- JS三级联动代码格式实例详解
- 使用jstack精确找到异常代码实例详解