首页 Order Laravel 正文

Laravel 创建手动验证

金鹏头像 金鹏 Laravel 2022-04-01 14:04:02 0 652
导读:一.手动验证1.手动验证,和第一节快速验证是一样的,都是在控制器验证;2.只不过,快速验证是全自动化的,无法局部控制更多的细节;//快速验证方式回顾$validateData&...
.手动验证

1. 手动验证,和第一节快速验证是一样的,都是在控制器验证;

2. 只不过,快速验证是全自动化的,无法局部控制更多的细节;

//快速验证方式回

$validateData = $request->validate([

'username '     =>  'required|min:2 |max:10',

'password '     =>  'required|min:6 ',

]);

 

//验证通过后得到提交的值

dd($validateData);

 

3. 创建手动验证,具体如下:

//手动创建验证器

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

'username '     =>  'required|min:2 |max:10',

'password '     =>  'required|min:6',

]);

 

//如果没有通过的

if ($validator->fails()) {

//跳转后,并将错误保存,还可以返回上一次填的信息

return redirect( '/task/form ')->withErrors($validator)->withInput();

}

 

用户名 <input type="text" name="username" value="{{old( 'username ')}}">

PS快速验证,也支持old记忆上一次表单数据的功能;

4. 如果有多个表单,那可以设置$errors 的多个错误包,有两种方法:

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

'username '     =>  'required|min:2 |max:10',

'password '     =>  'required|min:6',

])->validateWithBag( 'post ');   //设置快速验证和手动验证


if ($validator->fails()) {

//适合手动验证

return redirect( '/task/form ')->withErrors($validator,

'post ')->withInput();

}

 

{{--多个错误包调用 --}}

{{$errors->post}}

 

5. 我们也可以在验证完毕之前,通过附加回调添加更多的自定义错误信息

//验证钩子,

$validator->after(function ($validator) {

$validator->errors()->add( 'info ', '隐藏字段 info 的值不存在'); });

6. 关于$errors 对象,除了 any()判断,all()获取全部,还有一些别的方法;

{{--获取指定字段第一条信息 --}}

{{$errors->first( 'username ')}}

 

{{--判断指定字段是否有错误信息 --}}

                   {{$errors->has( 'username ')}}


本文地址:https://www.jinpeng.work/?id=190
若非特殊说明,文章均属本站原创,转载请注明原链接。
广告3

欢迎 发表评论:

  • 请填写验证码

日历

«    2025年4月    »
123456
78910111213
14151617181920
21222324252627
282930

控制面板

您好,欢迎到访网站!
  查看权限
广告2

退出请按Esc键