thinkphp5.1驗證

驗證

驗證器

每一個驗證須要一個繼承自think\Validate的驗證類,類裏面的$rule表明了驗證的規則php

<?php
namespace app\validate;

use think\Validate;

class User extends Validate
{
//當前驗證的規則
    protected $rule=[
        'name|姓名'=>[  //姓名是name的別名,用於輸出錯誤信息
            'require',  //必填
            'max'=>20,  //最大長度
            'min'=>5,   //最小長度
        ],
        'email'=>[
            'require',
            'email'=>'email',//必須是email格式
        ],
        'password'=>[
            'require',
            'max'=>20,
            'min'=>8,
            'alphaNum'//必須是字母或數字
        ]
    ];
}

進行測試app

<?php

namespace app\index\controller;
use app\facade\Validatefacade;
use app\validate\User;
use think\Controller;

class Validatetest extends Controller
{
    //驗證器,是個類Validate,
    public function test1()
    {
        //要驗證的數據
        $data = [
           'name' => 'xiaxuu',
            'email' => '2112343@qq.com',
            'password' => 'fdsfsafd'
        ];
        //驗證器是個類
        $validate = new User;//實例化驗證類
        if (!$validate->check($data)) {//檢驗驗證
            return $validate->getError();//若是姓名爲空就輸出’姓名不能爲空‘
        }
        return '驗證成功';
    }
}

獨立驗證

//獨立驗證 使用think\validate裏的rule方法,就是對$rule的初始化,使用內置的Validate的靜態代理
    public function test4(){
        $rule=[
            'name|姓名'=>[  //姓名是name的別名,用於輸出錯誤信息
                'require',  //必填
                'max'=>20,  //最大長度
                'min'=>5,   //最小長度
            ],
            'email'=>[
                'require',
                'email'=>'email',//必須是email格式
            ],
            'password'=>[
                'require',
                'max'=>20,
                'min'=>8,
                'alphaNum'//必須是字母或數字
            ]
        ];
        $data = [
            'name' => 'xiaxuu',
            'email' => '2112343@qq.com',
            'password' => 'fdsfsafd'
        ];
        Validate::rule($rule);//添加了驗證規則
        if(!Validate::check($data)){
            return Validate::getError();
        }
        return '驗證經過';
    }
相關文章
相關標籤/搜索