thinkphp5.1验证

验证

验证器

每个验证需要一个继承自think\Validate的验证类,类里面的$rule代表了验证的规则

<?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'//必须是字母或数字
        ]
    ];
}

进行测试

<?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' => '[email protected]',
            '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' => '[email protected]',
            'password' => 'fdsfsafd'
        ];
        Validate::rule($rule);//添加了验证规则
        if(!Validate::check($data)){
            return Validate::getError();
        }
        return '验证通过';
    }

猜你喜欢

转载自www.cnblogs.com/webdev8888/p/8973763.html