每一个验证须要一个继承自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 '验证经过'; }