Laravel框架表单验证操作实例分析
吾爱主题
阅读:144
2021-08-24 15:55:00
评论:0
本文实例讲述了Laravel框架表单验证操作。分享给大家供大家参考,具体如下:
?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 34 35 36 37 38 39 40 41 42 | public function create(Request $request ){ if ( $request ->isMethod( 'POST' )){ //验证通过后继续进行 //方法1 控制器验证 $this ->validate( $request ,[ 'Student.name' => 'required|min:2|max:20' , 'Student.age' => 'required|integer' , 'Student.sex' => 'required|integer' , ],[ 'required' => ':attribute 为必填项' , 'min' => ':attribute 长度不符合要求' , 'integer' => ':attribute 必须是一个整形' , ],[ 'Student.name' => '姓名' , 'Student.age' => '年龄' , 'Student.sex' => '性别' , ]); //方法2 Validator类验证 $validator = \Validator::make( $request ->input(),[ 'Student.name' => 'required|min:2|max:20' , 'Student.age' => 'required|integer' , 'Student.sex' => 'required|integer' , ],[ 'required' => ':attribute 为必填项' , 'min' => ':attribute 长度不符合要求' , 'integer' => ':attribute 必须是一个整形' , ],[ 'Student.name' => '姓名' , 'Student.age' => '年龄' , 'Student.sex' => '性别' , ]); if ( $validator ->fails()){ return redirect()->back()->withErrors( $validator )->withInput(); } //如果验证通过,则继续执行下面的代码 $data = $request ->input( 'Student' ); if (Student::create( $data )){ return redirect( 'student/index' )->with( 'success' , '添加成功' ); } else { return redirect()->back(); } } return view( 'student.create' ); } |
注意Laravel的create方法,需要在model中
设置允许批量赋值:
?1 | protected $fillable = [ 'name' , 'age' ]; |
web中间件有个作用是防止xss攻击,即csrf,需要在页面的表单中增加{{ csrf_field() }},
会生成一个隐藏的input表单,带个token字段。
错误信息的显示:
控制器中的with方法,可以把信息放入session中
?1 | return redirect( 'Student/index' )->with( 'success' , '添加成功' ); |
页面中的显示:
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 | @ if (Session::has( 'success' )) <div> {{ Session::get( 'success' ) }} </div> @ endif @ if ( count ( $errors )) <div class = "alert alert-danger" > <ul> @ foreach ( $errors ->all() as $val ) <li>{{ $val }}</li> @ endforeach </ul> </div> @ endif |
{{$errors->first()}}
可以显示第一条错误信息
数据保持:
?1 | return redirect()->back()->withErrors( $validator )->withInput(); |
这段代码中的withInput可以把表单提交的信息带回去,
页面中使用old方法:
?1 2 3 4 5 | 姓名 :<input type= "text" name= "Student[name]" value= "{{ old('Student')['name'] }}" /> 性别 : @ foreach ( $student ->user_sex() as $ind => $val ) <input type= "radio" name= "Student[sex]" value= "{{$ind}}" {{ old( 'Student' )[ 'sex' ]== $ind ? 'checked' : '' }} />{{ $val }} @ endforeach |
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。
原文链接:https://www.cnblogs.com/gyfluck/p/9042005.html
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。