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.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容