Laravel的表单验证

来源:互联网 发布:淘宝商城电脑版登陆 编辑:程序博客网 时间:2024/06/10 00:46

1.Laravel的表单验证是基于Validator类完成的

2.通过一个修改密码的功能说明Validator的使用

useValidator;

//修改密码public function modify_password(Request $request){    if($request->isMethod('post')){        $input = $request->all();        $rules = [            'password_o'=>'required',            'password'=>'required|between:6,20|confirmed',        ];        $messages = [            'password_o.required'=>'旧密码不能为空',            'password.required'=>'新密码不能为空',            'password.between'=>'新密码必须在6至20位之间',            'password.confirmed'=>'新密码与确认密码不一致',        ];        $validator = Validator::make($input,$rules,$messages);        if($validator->fails()){            return back()->withErrors($validator);        }else{            //$userModel = new User();            $user = User::find(session('user_id'));            if($input['password_o'] != Crypt::decrypt($user->password)){                return back()->with('errors','原密码错误');            }else{                $user->password = Crypt::encrypt($input['password']);                if($user->save()){                    return back()->with('errors','修改成功');                }else{                    return back()->with('errors','修改失败');                }            }        }    }    return view('admin.modify_password');}
(1)需要有要验证的字段、验证规则及提示信息三个参数
(2)在模板要显示的错误信息中,除了不符合验证规则的信息外,还有其他显示信息,因此这里用到了
return back()->with('errors','原密码错误');
(3)模板中错误信息的显示(注意与手册不同,添加了一个判断)
@if(count($errors)>0)    @if(is_object($errors))        @foreach($errors->all() as $v)            <p>{{$v}}</p>        @endforeach    @else        <p>{{$errors}}</p>    @endif@endif
(4)新密码与确认密码一致性的判断
新密码字段名为password,确认密码字段名必须为
password_confirmation(在password后面加上_confirmation,_confirmation位固定写法),否则无法使用confirmed规则




1 0
原创粉丝点击