时间:2021-05-26
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异常响应格式内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
简介Laravel默认已经为我们配置好了错误和异常处理,我们在App\Exceptions\Handler类中触发异常并将响应返回给用户。此外,Laravel还
本文实例讲述了laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作.分享给大家供大家参考,具体如下:通常在项目中,我们会对大量的前
Java中自定义异常详解及实例代码下面做了归纳总结,欢迎批评指正自定义异常classChushulingExceptionextendsException{pu
Laravel默认已经为我们配置好了错误和异常处理,我们在App\Exceptions\Handler类中触发异常并将响应返回给用户。所有异常都由类App\Ex
前言Laravel全局捕获异常后,会把异常转为相应的数据格式返回给用户。如果想要规定的数据格式相应,那我们只需重写异常捕获后的处理方法即可。异常处理流程Illu