每一個驗證須要一個繼承自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 '驗證經過'; }