Laravel 修改验证异常的响应格式实例代码详解

2025-05-29 0 59

Laravel 默认验证不通过后响应格式如下,有时此格式并不满足自己要求,需要修改格式。

?

1

2

3

4

5

6

7

8

9
// status 422

{

"message":"The given data was invalid.",

"errors":{

"url":[

"url 无效的格式"

]

}

}

当 Request 验证失败时会抛出 ValidationException异常,最终交由全局异常Handler类处理。Handler继承自Illuminate\\Foundation\\Exceptions\\Handler,框架中的Handler类调用render处理异常并进行响应,针对于ValidationException异常又调用了convertValidationExceptionToResponse方法来处理。代码

?

1

2

3

4

5

6

7

8

9

10
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 请求还是表单请求,然后分别做处理。

?

1

2

3

4

5

6

7
protected function invalidJson($request, ValidationException $exception)

{

return response()->json([

'message' => $exception->getMessage(),

'errors' => $exception->errors(),

], $exception->status);

}

追踪到invalidJson(),发现他就是用来处理参数验证异常响应格式的方法。在App\\Exceptions\\Handler类中,重写invalidJson()方法即可。

?

1

2

3

4

5

6

7
protected function invalidJson($request, ValidationException $exception)

{

return response()->json([

'code' => 0,

'data' => $exception->errors(),

], $exception->status);

}

最终,验证失败的响应格式如下

?

1

2

3

4

5

6

7

8

9
// status 422

{

"code": 0,

"data":{

"url":[

"url 无效的格式"

]

}

}

总结

到此这篇关于Laravel 修改验证异常响应格式的代码详解的文章就介绍到这了,更多相关Laravel异常响应格式内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!

原文链接:https://segmentfault.com/a/1190000022740037

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Laravel 修改验证异常的响应格式实例代码详解 https://www.kuaiidc.com/105260.html

相关文章

发表评论
暂无评论