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

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

<!-- 创建文章的表单 -->

二、内容在总结中

 
原文地址:https://www.cnblogs.com/Renyi-Fan/p/10853795.html