thinkphp 在model基類為我們定義了自動驗證的函式和正規表示式,我們只需要在對應的資料庫表的模型類下建立$_validate屬性就可以了,下面介紹表單資料自動驗證的功能,非常實用而方便!
1、我們找到model基類,可以看到 protected $_validate = array(); // 自動驗證定,呵呵,它是陣列型別的,下面在對應資料模型檔案定義它;2、
public function checkverify($verify)
//自動驗證
protected $_validate = array(
array("title", "require", "標題必須!"),
array('categoryid', 'require', "類別必須!"),
array('content', 'require', "內容必須!"),
array('verify', 'require','驗證碼必須!'),
array('verify', 'checkverify', '驗證碼錯誤!', 0, 'callback')
);3、格式說明:array(驗證字段,驗證規則,錯誤提示,驗證條件,附加規則,驗證時間),
4、引數解釋:
驗證字段:需要驗證的表單字段名稱,這個欄位不一定是資料庫字段,也可以是表單的一些輔助字段,例如確認密碼和驗證碼等等。
驗證規則: 要進行驗證的規則,需要結合附加規則(必須),官方已經包含的規則如下(自己同時也可以加):
提示資訊: 用於驗證失敗後的提示資訊定義(必須)、
驗證條件:(可選)
驗證條件的規則有三條:
model::exists_to_vailidate 或者0 存在欄位就驗證 (預設)
model::must_to_validate 或者1 必須驗證
model::value_to_vailidate或者2 值不為空的時候驗證
附加規則:
regex 正則驗證,說明前面的那個驗證規則是乙個正規表示式;
function 使用函式驗證,說明前面的那個驗證是個函式名;
callback 使用方法驗證,說明驗證規則是乙個model類的方法;
confirm 驗證表單中的兩個字段是否相等,驗證規則是乙個欄位名;
equal 驗證是否等於某個值,這個值是有前面的驗證規則定義的;
in 驗證是否在某個範圍之內,前面定義的是乙個陣列;
unique 驗證是否唯一,系統會根據字段目前的值查詢資料庫來判斷時候存在相同的值;
同時,系統還內建了一些常用的正則驗證規則,可以這節使用,包括:require欄位必須,email 郵箱;
currency 貨幣,number 數字,這些驗證規則可以直接使用;
01.model:: model_insert 或者1新增資料時候驗證
02.model:: model_update 或者2編輯資料時候驗證
03.model:: model_both 或者3 全部情況下驗證(預設)
5、官方示例:
protected
$_validate =
array(
array('verify','require','驗證碼必須!'),
//預設情況下用正則進行驗證
array(name,'','帳號名稱已經存在!',0,』unique』,1),
//在新增的時候驗證name欄位是否唯一
array('value',
array(1,2,3),'值的範圍不正確!',2,』in』),
//當值不為空的時候判斷是否在乙個範圍內
array('repassword','password','確認密碼不正確',0,』confirm』),
//驗證確認密碼是否和密碼一致
array('password','checkpwd','密碼格式不正確',0,』
function』)
//自定義函式驗證密碼格式
);
ThinkPHP框架表單驗證
thinkphp框架的表單驗證分為靜態驗證和動態驗證。靜態驗證 首先在model檔案下建立乙個表的模型,驗證哪個表就鍵哪個表的模型。如驗證users表,則建立textmodel.class.php的檔案。定義乙個textmodel類,繼承父類model 在類裡面新增二維陣列,陣列裡存放驗證條件。條件...
ThinkPHP 自動驗證
thinkphp 內建了資料物件的自動驗證功能來完成模型的業務規則驗證。自動驗證是基於資料物件的,而大多情況下資料物件是基於 post表單 不是絕對的 建立的。基本的自動驗證功能包括 必須字段 email郵箱格式 唯一性 url位址 數字 兩個字段是否相同 是否等於某個值等。要使用系統的自動驗證功能...
ThinkPHP自動驗證
array 驗證字段,驗證規則,錯誤提示,驗證條件,附加規則,驗證時間 1.驗證字段 需要驗證的表單字段名稱,這個欄位不一定是資料庫字段,也可以是表單的一些輔助字段,例如確認密碼和驗證碼等等。有個別驗證規則和字段無關的情況下,驗證欄位是可以隨意設定的,例如expire有效期規則是和表單字段無關的。2...