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

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

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

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

  1. 引入Validation

在Controller中引入Validator:

use IlluminateSupportFacadesValidator;
  1. 验证规则

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

规则 说明
required 必填
email 邮箱格式
date 日期格式
Regex 正则匹配
max 最大长度
min 最小长度
  1. 验证器构造

使用Laravel Validaton需要先构造一个验证器,可以通过不同的方式进行构造,如:

  • 使用Validator门面的make方法:
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验证:
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());    // 验证通过,执行代码 }
  1. 验证错误信息

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

if ($validator->fails()) {   return redirect('register')     ->withErrors($validator)     ->withInput(); }

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

@if ($errors-&gt;has('name'))   <span class="help-block">     <strong>{{ $errors-&gt;first('name') }}</strong>   </span> @endif
  1. 自定义错误信息

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

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框架》

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享