zoukankan      html  css  js  c++  java
  • Laravel 表单验证

    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中
    设置允许批量赋值:
    protected $fillable = ['name','age'];


    web中间件有个作用是防止xss攻击,即csrf,需要在页面的表单中增加{{ csrf_field() }},
    会生成一个隐藏的input表单,带个token字段。


    错误信息的显示:
    控制器中的with方法,可以把信息放入session中
    return redirect('Student/index')->with('success','添加成功');
    页面中的显示:
    @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()}}可以显示第一条错误信息

    数据保持:
    return redirect()->back()->withErrors($validator)->withInput();
    这段代码中的withInput可以把表单提交的信息带回去,
    页面中使用old方法:
    姓名 :<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
     


     
     
     
     
  • 相关阅读:
    python的包和模块
    python 匿名函数
    hdu 1455 Sticks
    python 返回函数
    python 自定义排序函数
    batchsize对收敛速度的影响
    mini_batch GD
    dropout
    sift
    hog
  • 原文地址:https://www.cnblogs.com/gyfluck/p/9042005.html
Copyright © 2011-2022 走看看