abstract:<?php namespace app\Validate; use think\Validate; //繼承框架的驗(yàn)證叫驗(yàn)證器模式; class Admin extends Validate { //驗(yàn)證規(guī)則; protected $rule = [ 'qq' =>&n
<?php namespace app\Validate; use think\Validate; //繼承框架的驗(yàn)證叫驗(yàn)證器模式; class Admin extends Validate { //驗(yàn)證規(guī)則; protected $rule = [ 'qq' => 'require|length:4,10', //長(zhǎng)度要求4-10; 'password' => 'require|length:4,8', //'sex' => 'in:0,1'; //范圍0-1之間; //'money' => 'require|gt:2000'; //大于2000; ]; protected $message = [ 'qq.require' => 'qq長(zhǎng)度必須在4到10之間', 'password' => '密碼長(zhǎng)度必須在4到8之間', ]; }
<?php namespace app\index\controller; use think\Controller; use app\validate\Admin; //導(dǎo)入驗(yàn)證器; // 數(shù)據(jù)驗(yàn)證; class Verify extends Controller //無(wú)法繼承兩個(gè)類,所以另一個(gè)就用依賴注入; { public function demo(Admin $validate ){ $data = [ 'qq' => 'longzhu', 'password' => 12345678, ]; // $validate = new Admin(); //->可以用依賴注入; if($validate->check($data)){ return '驗(yàn)證通過(guò)'; }else{ dump($validate->getError()); } } //驗(yàn)證器模式 ,推薦使用; public function demo2(){ $data = [ 'qq' => 'longzhu', 'password' => 123245678, ]; $rule = 'app\validate\Admin'; $res = $this->validate($data,$rule); //如果數(shù)據(jù)符合驗(yàn)證規(guī)則;返回的是true; if($res){ return $res; } return '驗(yàn)證成功'; } //獨(dú)立驗(yàn)證; public function demo3(){ //think\Validate.php //validate::make() 創(chuàng)建驗(yàn)證規(guī)則并返回對(duì)象; //Validate->check($data) 驗(yàn)證; // 1.創(chuàng)建驗(yàn)證規(guī)則; $rule = [ 'qq' => 'require|length:4,10', //長(zhǎng)度要求4-10; 'password' => 'require|length:4,8', ]; //2.錯(cuò)誤信息 $message = [ 'qq.require' => 'qq長(zhǎng)度必須在4到10之間', 'password' => '密碼長(zhǎng)度必須在4到8之間', ]; //3.創(chuàng)建數(shù)據(jù); $data = [ 'qq' => 'longzhu', 'password' => 1232245678, ]; // 重要的;驗(yàn)證類沒找到,可以直接在原地路徑; $validate = \think\Validate::make($rule,$message); $res = $validate->check($data); return $res? '驗(yàn)證通過(guò)':$validate->getError(); } }
在任意文件下創(chuàng)建一個(gè)驗(yàn)證器類,創(chuàng)建的類繼承框架的類;
驗(yàn)證器類里有兩個(gè)受保護(hù)的屬性,驗(yàn)證規(guī)則和驗(yàn)證信息;
在控制器方法中調(diào)用驗(yàn)證器類,(用依賴注入調(diào)用此類);
將數(shù)據(jù)和規(guī)則一起驗(yàn)證,并返回信息;
有信息驗(yàn)證失敗,沒信息,驗(yàn)證成功;
Correcting teacher:查無(wú)此人Correction time:2019-05-22 09:28:36
Teacher's summary:完成的不錯(cuò)。多看thinkphp的文檔,多練習(xí)功能,很快就能上手。繼續(xù)加油。