## 自動驗證 依賴核心擴展類 verify.class.php
需要建立用戶自定義模型文件
例如: home/model/ 目錄下建立 user.class.php
繼承 verify 類,所有規則都寫在 $roles 數組中
$roles 數組的鍵名(username email age)是要驗證的字段名,鍵值數組是驗證規則
規則當中最后一個參數 'add' 和 'both' 是驗證時機
<?php
namespace m;
use \ext\verify;
class user extends verify{
protected $returnMod = 2; //設置返回時機
protected $roles = [
'username'=>[ //驗證 username 字段
'unique'=>['該用戶已被注冊!','add'], //驗證 unique 規則
'length'=>[3,18,'用戶名長度必須在3-18之間','both'], //驗證 length 規則
'notnull'=>['username必填!'], //驗證 notnull 規則
'must'=>true, //不論提交的數據是否存在該字段都進行驗證
],
'email'=>[ //驗證 email 字段
'email'=>['電子郵件格式不正確!','both'], //驗證email規則
],
'age'=>[ //驗證 age 字段
'myfun'=>['checkage','年齡不符合要求'], //使用自定義函數 checkage()進行驗證
],
//...更多字段的驗證規則
];
protected function checkage($value,$key){ //自定義的驗證函數
if($value < 1 || $value > 100) return false;
else return true;
}
/*以下根據需求寫自定義操作*/
public function addUser(){ //自定義的 addUser 操作
$result = $this->add($_POST);
if($result) return true;
else return false;
}
//... 其它自定義操作
}
## 規則說明
非空: 'notnull' => ['提示信息','驗證時機'],
唯一: 'unique' => ['提示信息','驗證時機'],
郵箱: 'email' => ['提示信息','驗證時機'],
數字: 'number' => ['提示信息','驗證時機'],
長度: 'length' => [1,10,'提示信息','驗證時機'], //長度范圍是一個參數時驗證長度相等,
區間: 'between' => [1,10,'提示信息','驗證時機'],
相等: 'eq' => ['要比較的另一字段','提示信息','驗證時機'],
正則: 'preg' => ['正則表達式','提示信息','驗證時機'],
必須: 'must' => true/false //為真時則不管數據是否有此字段都要驗證,默認false(有此字段時才驗證)
## 驗證時機
**默認為 'both'**
'add' //添加數據時驗證
'update' //更新數據時驗證
'both' //添加和更新時都驗證
## 返回時機
**默認為 某個字段驗證失敗就返回**
模型中定義成員變量:protected $returnMod = 1;
$returnMod = 0 //全部驗證完畢之后返回
$returnMod = 1 //某個字段驗證失敗返回(默認)
$returnMod = 2 //某一條規則驗證失敗返回
>[danger] 注意,要實現自動驗證只有下面三種方法
$m = M('user');
$m->add($add); //添加數據 add()方法
$m->save($save); //更新數據 save()方法
$m->create($_POST); //主動驗證,參數為空時默認是$_POST