本文采用Yii文檔,經過自己的修改,讓讀者更容易理解
預定義完整列表:
- boolean : CBooleanValidator 的別名, 確保屬性的值是CBooleanValidator::trueValue 或CBooleanValidator::falseValue .
- captcha : CCaptchaValidator 的別名,確保了特性的值等於 CAPTCHA 顯示出來的驗證碼.
- compare : CCompareValidator 的別名, 確保了特性的值等於另一個特性或常量.
- email : CEmailValidator 的別名,確保了特性的值是一個有效的電郵地址.
- default : CDefaultValueValidator 的別名, 爲特性指派了一個默認值.
- exist : CExistValidator 的別名, 確保屬性值存在於指定的數據表字段中.
- file : CFileValidator 的別名, 確保了特性包含了一個上傳文件的名稱.
- filter : CFilterValidator 的別名, 使用一個filter轉換屬性.
- in : CRangeValidator 的別名, 確保了特性出現在一個預訂的值列表裏.
- length : CStringValidator 的別名, 確保了特性的長度在指定的範圍內.
- match : CRegularExpressionValidator 的別名, 確保了特性匹配一個正則表達式.
- numerical : CNumberValidator 的別名, 確保了特性是一個有效的數字.
- required : CRequiredValidator 的別名, 確保了特性不爲空.
- type : CTypeValidator 的別名, 確保了特性爲指定的數據類型.
- unique : CUniqueValidator 的別名, 確保了特性在數據表字段中是唯一的.
- url : CUrlValidator 的別名, 確保了特性是一個有效的路徑
注:下列數組中第一個值和第二個值爲必填項,message的值爲錯誤提示信息
-
reqiurd
(CRequiredValidator)-----必須驗證屬性:
實例:array('name', 'required', 'requiredValue'=> '張', 'strict'=> true, 'message'=> '請填寫姓名')
講解:
- requiredValue------mixed-----所需的值
- strict-------boolean------是否比較嚴格
====================================================
-
filter
(CFilterValidator )-----過濾驗證方法:
實例:array('name', 'test', 'message'=> '請填寫姓名')
public function test($object, $attributes) {
if($this->name != '張先森') {
$this->addError($object, $attributes['message']);
}
}
講解:
- filter----方法名(調用用戶自己定義的函數)
====================================================
-
match
(CRegularExpressionValidator)-----正則驗證屬性:
實例:array('name', 'match', 'allowEmpty'=> 'true', 'not'=> 'true','pattern'=> '/[a-z]/i', 'message'=> '必須不是子母')
講解:
- allowEmpty------boolean-----是否可以爲空(默認爲true)
- not-------boolean------是否反轉驗證邏輯
- pattern-------boolean------正則方法
====================================================
-
email
(CEmailValidator)-----郵箱驗證屬性:
實例:array('name', 'email', 'allowEmpty'=> 'true','pattern'=> '/[a-z]/i', 'message'=> '必須不是子母')
講解:
- allowEmpty------boolean-----是否可以爲空(默認爲true)
- pattern-------boolean------正則方法
- allowName-------boolean------是否允許在電子郵件地址的名稱
- checkMx-------boolean------是否檢查電子郵件地址的MX記錄
====================================================
-
url
(CUrlValidator)-----url驗證屬性:
實例:array('name', 'url', 'allowEmpty'=> 'true','pattern'=> '/[a-z]/i', 'message'=> '必須不是子母')
講解:
- allowEmpty------boolean-----是否可以爲空(默認爲true)
- pattern-------boolean------正則方法
- defaultScheme-------boolean------默認的URL方案
- validSchemes-------boolean------清單應視爲有效的URL計劃
====================================================
-
unique
(CUniqueValidator)-----唯一性驗證屬性:
實例:array('name', 'unique', 'allowEmpty'=> 'true','caseSensitive'=> 'true', 'message'=> '必須不是子母')
講解:
- allowEmpty-----------是否可以爲空(默認爲true)
- caseSensitive-------------區分大小寫
====================================================
-
compare
(CCompareValidator)-----比較驗證屬性:
實例:
與某個值比:array('name', 'compare', 'allowEmpty'=> 'true','compareValue'=> '10','operator'=> '>', 'message'=> '必須大於10')
與某個提交的屬性比:
array('name', 'compare', 'allowEmpty'=> 'true','compareAttribute'=> 'password','operator'=> '>', 'message'=> '必須大於password')
講解:
- allowEmpty-----------是否可以爲空(默認爲true)
- compareAttribute-------------需要比較的屬性
- compareValue-------------需要比較的值
- operator-------------比較運算符
- strict-------------嚴格執行(值和類型都要相等)
====================================================
-
length
(CStringValidator)-----字符串驗證屬性:
實例:
是否在某個範圍內:array('name', 'length', 'allowEmpty'=> 'true','max'=> '10','min'=> '5', 'tooLong'=> '太長了','tooShort'=> '太短了')
必須是某個長度:array('name', 'length', 'is'=> '5', 'message'=> '長度必須爲5')
講解:
- allowEmpty-----------是否可以爲空(默認爲true)
- encoding-------------編碼
- is-------------確切的長度
- max-------------最大長度
- min-------------最小長度
- tooLong-------------定義值太大的錯誤
- tooShort-------------定義值太大的錯誤
====================================================
-
in
(CRangeValidator)-----在某個範圍內屬性:
實例:
必須在某個範圍內:array('name', 'in', 'range'=> array(1,2,3,4,5),'message'=> '值必須爲1,2,3,4,5')
不能在某個範圍內:array('name', 'in','not'=> 'true', 'range'=> array(1,2,3,4,5),'message'=> '值不能爲1,2,3,4,5')
講解:
- allowEmpty-----------是否可以爲空(默認爲true)
- not-------------是否反轉的驗證邏輯
- range-------------array範圍
- strict-------------嚴格執行(值和類型都要相等)
====================================================
-
numerical
(CNumberValidator)-----數字驗證屬性:
實例:
必須爲整數:array('name', 'numerical', 'integerOnly'=> 'true', 'message'=> '值必須爲整數')
值必須在一個範圍內:array('name', 'numerical', 'integerOnly'=> 'true', 'message'=> '值必須爲整數', 'max'=> '100', 'min'=> '10','tooBig'=> '值太大了','tooSmall'=> '值太小了')
講解:
- allowEmpty-----------是否可以爲空(默認爲true)
- integerOnly-------------整數
- integerPattern-------------正則表達式匹配整數
- max-------------最大值
- min-------------最小值
- numberPattern-------------匹配號碼
- tooBig-------------值太大時的提示
- tooSmall-------------值太小時的提示
====================================================
-
captcha
(CCaptchaValidator)-----驗證碼驗證屬性:
實例:array('name', 'captcha', 'caseSensitive'=> 'true', 'message'=> '驗證碼不正確')
講解:
- allowEmpty-----------是否可以爲空(默認爲true)
- caseSensitive-------------區分大小寫
====================================================
-
type
(CTypeValidator)-----類型驗證屬性:
實例:array('name', 'type', 'dateFormat'=> 'MM/dd/yyyy', 'type'=> 'date', 'message'=> '類型不正確')
講解:
- allowEmpty-----------是否可以爲空(默認爲true)
- dateFormat-------------日期應遵循的格式模式('MM/dd/yyyy')
- datetimeFormat-------------日期時間應遵循的格式模式('MM/dd/yyyy hh:mm')
- timeFormat-------------時間應遵循的格式模式('hh:mm')
- type-------------類型 ‘string’, ‘integer’, ‘float’, ‘array’, ‘date’, ‘time’, ‘datetime’
====================================================
-
file
(CFileValidator)-----文件驗證屬性:
實例:array('name', 'file', 'types'=> array('jpg','gif','png'), 'message'=> '文件格式不正確')
講解:
- allowEmpty-----------是否可以爲空(默認爲true)
- maxFiles-----------最大文件數
- maxSize-----------文件最大值
- minSize-----------文件最小值
- tooLarge-----------文件太大的錯誤信息
- tooMany-----------文件太多的錯誤信息
- tooSmall-----------文件太小的錯誤信息
- types-----------允許的擴展名
- wrongType-----------擴展名錯誤時的錯誤信息
====================================================
-
default
(CDefaultValueValidator)-----默認值屬性:
實例:array('name', 'default', 'setOnEmpty'=> 'true', 'value'=> '123')
講解:
- setOnEmpty-----------設置爲空
- value-----------默認值
====================================================
-
exist
(CExistValidator)-----是否存在屬性:
講解:
- allowEmpty-----------是否可以爲空(默認爲true)
- attributeName-----------屬性名稱
- className-----------類名
- criteria-----------標準
====================================================
-
boolean
(CBooleanValidator)-----布爾類型驗證屬性:
實例:array('name', 'boolean', 'trueValue'=> '1', 'falseValue'=> '-1','message'=> '該值只能爲1或-1')
講解:
- allowEmpty-----------是否可以爲空(默認爲true)
- falseValue-----------錯誤狀態的值
- strict-----------嚴格驗證
- trueValue-----------真實狀態的值