当前位置:首页 > CMS教程 > 其它CMS > 列表

Laravel框架表单验证操作实例分析

发布:smiling 来源: PHP粉丝网  添加日期:2021-12-25 16:00:34 浏览: 评论:0 

这篇文章主要介绍了Laravel框架表单验证操作,结合实例形式分析了Laravel框架表单验证相关的表单数据提交、验证、错误信息提示等相关操作技巧,需要的朋友可以参考下

本文实例讲述了Laravel框架表单验证操作,分享给大家供大家参考,具体如下:

  1. public function create(Request $request){ 
  2.   if($request->isMethod('POST')){ 
  3.     //验证通过后继续进行 
  4.     //方法1 控制器验证 
  5.     $this->validate($request,[ 
  6.       'Student.name' => 'required|min:2|max:20'
  7.       'Student.age' => 'required|integer'
  8.       'Student.sex' => 'required|integer'
  9.     ],[ 
  10.       'required'=>':attribute 为必填项'
  11.       'min' => ':attribute 长度不符合要求'
  12.       'integer' => ':attribute 必须是一个整形'
  13.     ],[ 'Student.name' => '姓名'
  14.       'Student.age' => '年龄'
  15.       'Student.sex' => '性别'
  16.     ]); 
  17.     //方法2 Validator类验证 
  18.     $validator = \Validator::make($request->input(),[ 
  19.       'Student.name' => 'required|min:2|max:20'
  20.       'Student.age' => 'required|integer'
  21.       'Student.sex' => 'required|integer'
  22.     ],[ 
  23.       'required'=>':attribute 为必填项'
  24.       'min' => ':attribute 长度不符合要求'
  25.       'integer' => ':attribute 必须是一个整形'
  26.     ],[ 'Student.name' => '姓名'
  27.       'Student.age' => '年龄'
  28.       'Student.sex' => '性别'
  29.     ]); 
  30.     if($validator->fails()){ 
  31.       return redirect()->back()->withErrors($validator)->withInput(); 
  32.     } 
  33.     //如果验证通过,则继续执行下面的代码 
  34.     $data = $request->input('Student'); 
  35.     if(Student::create($data)){ 
  36.       return redirect('student/index')->with('success','添加成功'); 
  37.     }else
  38.       return redirect()->back(); 
  39.     } 
  40.   } 
  41.   return view('student.create'); 

注意Laravel的create方法,需要在model中

设置允许批量赋值:

protected $fillable = ['name','age'];

web中间件有个作用是防止xss攻击,即csrf,需要在页面的表单中增加{{ csrf_field() }},

会生成一个隐藏的input表单,带个token字段。

错误信息的显示:

控制器中的with方法,可以把信息放入session中

return redirect('Student/index')->with('success','添加成功');

页面中的显示:

  1. @if(Session::has('success')) 
  2. <div> 
  3.   {{ Session::get('success') }} 
  4. </div> 
  5. @endif 
  6. @if(count($errors)) 
  7.   <div class="alert alert-danger"
  8.     <ul> 
  9.       @foreach($errors->all() as $val
  10.         <li>{{$val}}</li> 
  11.       @endforeach 
  12.     </ul> 
  13.   </div> 
  14. @endif 
  15. {{$errors->first()}}可以显示第一条错误信息 

数据保持:

return redirect()->back()->withErrors($validator)->withInput();

这段代码中的withInput可以把表单提交的信息带回去,页面中使用old方法:

  1. 姓名 :<input type="text" name="Student[name]" value="{{ old('Student')['name'] }}" /> 
  2. 性别 : 
  3. @foreach($student->user_sex() as $ind=>$val
  4. <input type="radio" name="Student[sex]" value="{{$ind}}" {{ old('Student')['sex']==$ind?'checked':'' }} />{{$val}} 
  5. @endforeach

Tags: Laravel表单验证

分享到: