Laravel开发:如何使用Laravel Validation验证请求数据?

来源:undefined 2024-12-27 01:27:32 1012

laravel开发:如何使用laravel validation验证请求数据?

Laravel作为目前最流行的PHP框架之一,其原因之一就在于它提供了很多优秀的组件,其中之一是Laravel Validation。在Web开发过程中,我们常常需要验证从前端提交的数据是否符合规范,如表单提交等,这时候就需要使用Laravel Validation组件来进行数据验证。

本文将介绍Laravel Validation的基本用法及示例。

引入Validation

在Controller中引入Validator:

1

use IlluminateSupportFacadesValidator;

登录后复制
验证规则

Laravel Validation支持多种不同的验证规则,包括必填、邮箱、日期等。我们可以根据需求进行选择。下表列举了一些常用的规则:

规则 说明 required 必填 email 邮箱格式 date 日期格式 regex 正则匹配 max 最大长度 min 最小长度 验证器构造 使用Validator门面的make方法:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

public function validate(Request $request)

{

$validator = Validator::make($request->all(), [

name => required|max:255,

email => required|email|unique:users|max:255,

password => required|min:6|max:255,

]);

if ($validator->fails()) {

return redirect(register)

->withErrors($validator)

->withInput();

}

// 验证通过,执行代码

}

登录后复制
使用request验证:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

public function rules()

{

return [

name => required|max:255,

email => required|email|unique:users|max:255,

password => required|min:6|max:255,

];

}

public function register(Request $request)

{

$this->validate($request, $this->rules());

// 验证通过,执行代码

}

登录后复制
验证错误信息

如果验证失败,可以通过withErrors方法来获取错误信息,如:

1

2

3

4

5

if ($validator->fails()) {

return redirect(register)

->withErrors($validator)

->withInput();

}

登录后复制

然后在视图中调用$errors变量即可获取对应错误信息:

1

2

3

4

5

@if ($errors->has(name))

<span class="help-block">

<strong>{{ $errors-&gt;first(name) }}</strong>

</span>

@endif

登录后复制
自定义错误信息

在验证器构造的第二个参数中,可以通过设置自定义错误信息来对验证错误进行更加具体的提示,如:

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

public function rules()

{

return [

name =&gt; required|max:255,

email =&gt; required|email|unique:users|max:255,

password =&gt; required|min:6|max:255,

];

}

public function messages()

{

return [

name.required =&gt; 名称不能为空,

email.required =&gt; 邮箱不能为空,

email.email =&gt; 请输入正确的邮箱地址,

email.unique =&gt; 该邮箱已经被注册,

password.required =&gt; 密码不能为空,

password.max =&gt; 密码长度不能超过:max个字符,

];

}

public function register(Request $request)

{

$validator = Validator::make($request-&gt;all(), $this-&gt;rules(), $this-&gt;messages());

if ($validator-&gt;fails()) {

return redirect(register)

-&gt;withErrors($validator)

-&gt;withInput();

}

// 验证通过,执行代码

}

登录后复制

本文以上述代码为例进行了Laravel Validation的基本介绍,希望本文能够帮助到大家。

参考资料:

《Laravel框架》

以上就是Laravel开发:如何使用Laravel Validation验证请求数据?的详细内容,更多请关注php中文网其它相关文章!

最新文章