laravel基础课程---14、表单验证(lavarel如何进行表单验证)
一、总结
一句话总结:
lavarel的验证的功能比tp要【简单】且【强大】很多
直接控制器中:添加【规则数组】和【修改提示信息数组】,然后调用【验证类】进行验证即可:$validator = Validator::make($input,$rules,$message);
表单验证 1、控制器 // 规则 $rules=[ 'name'=>'required|unique:user|between:6,12', "pass"=>'required|between:6,12|same:repass', ]; // 所有数据 $input=$request->all(); // 修改提示信息 $message=array( "name.required"=>"请输入用户名", "name.unique"=>"用户名以存在", "name.between"=>"长度不满足", "pass.required"=>"请输入密码", "pass.between"=>"密码长度不满足", "pass.sname"=>"两次不一致", ); // 设置表单验证的参数 // 参数一 需要验证的数据 // 参数二 验证规则 // 参数三 提示信息 $validator = Validator::make($input,$rules,$message); // 进行验证 if($validator->passes()){ // 处理数据 unset($_POST['_token']); unset($_POST['repass']); $_POST['pass']=Crypt::encrypt( $_POST['pass']); $_POST['time']=time(); if (DB::table("user")->insert($_POST)) { # code... return redirect("admin/user"); }else{ return back(); } }else{ return back()->withInput()->withErrors($validator); } 2、页面中提示错误 @if (count($errors) > 0) <div class="alert alert-danger"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif
1、lavarel如何加密解密字符串?
Crypt对象的encrypt方法:echo $pass=Crypt::encrypt('123');
Crypt对象的decrypt方法:echo Crypt::decrypt('MjM1OCJ9');
你可以借助 Crypt facade 来加密一个值。这些值都会使用 OpenSSL 与 AES-256-CBC 来进行加密。此外,所有加密过后的值都会被签署文件消息验证码 (MAC),以检测加密字符串是否被篡改过。
2、Crypt::encrypt($pass)和md5加密的区别?
Crypt([krɪpt]:n. 土窖,地下室)::encrypt($pass):每次都是变化的,长度180-192之间,并且可逆
md5:不变的,并且可能被暴力破解
你可以借助 Crypt facade 来加密一个值。这些值都会使用 OpenSSL 与 AES-256-CBC 来进行加密。此外,所有加密过后的值都会被签署文件消息验证码 (MAC),以检测加密字符串是否被篡改过。
crypt
英 [krɪpt] 美 [krɪpt]
- n. 土窖,地下室;腺窝
3、lavarel中 判断表单用户名存在不存在是不是用的ajax?
其实不必:闪存 + with()方法即可
with方法向页面返回一个变量,这个变量的值就是 "用户不存在"
4、判断表单(比如判断提交的用户名是否存在),有没有必要弹出框提示?
没必要,直接在页面的 div class="alert alert-danger" 标签中显示即可
<!-- /resources/views/post/create.blade.php --> <h1>创建文章</h1> @if (count($errors) > 0) <div class="alert alert-danger"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif <!-- 创建文章的表单 -->