thinkphp 表單自動驗證功能

2021-07-10 15:50:04 字數 2460 閱讀 2247

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...