Laravel 修改验证异常的响应格式实例代码详解
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异常响应格式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
通过修改Laravel Auth使用salt和password进行认证用户详解
这篇文章主要给大家介绍了关于通过修改Laravel Auth使用salt和password进行认证用户的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。2017-08-08PHP常量DIRECTORY_SEPARATOR原理及用法解析
这篇文章主要介绍了PHP常量DIRECTORY_SEPARATOR原理及用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-11-11Yii安装EClientScript插件扩展实现css,js文件代码压缩合并加载功能
这篇文章主要介绍了Yii安装EClientScript插件扩展实现css,js文件代码压缩合并加载功能,分析了EClientScript插件的下载、安装、设置及使用的相关技巧,需要的朋友可以参考下2016-07-07
最新评论