美文网首页
Laravel6.X 验证的几种方式和方法validator v

Laravel6.X 验证的几种方式和方法validator v

作者: 前端组件库 | 来源:发表于2020-01-21 15:20 被阅读0次

我们知道laravel的验证数据方式是多种多样的。我们来看看几种方式

1.控制器里的验证

直接在控制器里加上

$this->validate($request, [
     'username' => ['required', 'string'],
     'password' => ['required', 'string']
])

比较好理解,当然也可以这样写:

$this->validate($request, [
     'username' => 'required|string',
     'password' => 'required|string'
])

2.Requests里的验证

创建request一般说明数据需要比较复杂的验证,这样分离处理的话更好管理和修改。

php artisan make:request UsersRequests

在app/Http/Requests这个目录下面多了一个文件UsersRequest.php。我们在这里一般有三个方法,rules(), messages(), attributes()。rules()里面写的是规则数组,messages()里写的是错误信息,attributes()里写的通常是替换attribute的写法。让我们看看一个例子。

3.闭包closure在验证规则数组

这里适合比较复杂一点的情况,例如有几种情况。可以直接在验证规则数组里插入。
直接在validate数组里加上一个闭包。例如

$user = $request->user();
$this->validate($request, [
     'username' => ['required', 'string'],
     'password' => ['required', function($attribute, $value, $fail) use ($user){
                if(!hash::check($value, $user->password){
                    $fail("密码错误!");
            }
      }]
])

这个闭包接受 3 个参数,分别是参数名、参数值和错误回调。注意fail回调方法是有的。这里比较重要的是value, 这个是用户提交的值。attribute当然就是password了,不必理会。后面的use一般导入的是要比较的数据。

4.扩展验证规则

相关文章

网友评论

      本文标题:Laravel6.X 验证的几种方式和方法validator v

      本文链接:https://www.haomeiwen.com/subject/kwsezctx.html