laravel基础课程---14、表单验证(lavarel如何进行表单验证)

时间:2023-03-08 17:51:02

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 <!-- 创建文章的表单 -->

二、内容在总结中