laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例

2025-05-29 0 49

本文实例讲述了laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作.分享给大家供大家参考,具体如下:

通常在项目中,我们会对大量的前端提交过来的表单进行验证,如果不通过,则返回错误信息。

前端为了更好的体验,都使用ajax进行表单提交,虽然 validate() 方法能够根据前端的不同请求方式,返回不同的结果。

但是返回的json格式并不是我们想要的,这个时候,我们就需要自定义返回错误结果。

先创建一个表单请求类:

?

1
php artisan make:request TestRequest

然后在 rules()messages() 方法里填写自已的验证规则和消息

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36
<?php

namespace App\\Http\\Requests;

use Illuminate\\Foundation\\Http\\FormRequest;

use Illuminate\\Contracts\\Validation\\Validator;

use Illuminate\\Http\\Exceptions\\HttpResponseException;

class TestRequest extends FormRequest

{

/**

* 控制访问权限

*/

public function authorize()

{

//注意,默认是false,改成true

return true;

}

/**

* 验证规则

*/

public function rules()

{

return [

'name' => 'required',

'pwd' => 'required',

];

}

/**

* 验证消息

*/

public function messages()

{

return [

'name.required' => '姓名必填',

'pwd.required' => '密码必填',

];

}

}

注意,父类 FormRequest中的 failedValidation() 方法用来处理验证失败,我们重写父类方法,来实现自已的返回。

?

1

2

3

4

5

6

7

8
public function failedValidation(Validator $validator)

{

throw (new HttpResponseException(response()->json([

'status_code' => 500,

'message' => '请求错误',

'data' => $validator->errors()->first(),

], 200)));

}

注意 failedValidation() 方法的 $validator 参数是 Illuminate\\Contracts\\Validation\\Validator 对象,不是 Illuminate\\Validation\\Validator,不要搞错了。

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

原文链接:https://www.cnblogs.com/jkko123/p/11562980.html

收藏 (0) 打赏

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

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

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

快网idc优惠网 建站教程 laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例 https://www.kuaiidc.com/104554.html

相关文章

发表评论
暂无评论