array(array(‘username’, ‘required’), array(‘username’, ‘length’, ‘min’=>3, ‘max’=>12), array(‘passWord’, ‘compare’, ‘compareAttribute’=>’password2&PRime;, ‘on’=>’register’), array(‘password’, ‘authenticate’, ‘on’=>’login’), array(‘Price’,’numerical’, ‘integerOnly’=>true),);public function rules(){ return array( array(‘title, content, status’, ‘required’), array(‘title’, ‘length’, ‘max’=>128), array(‘status’, ‘in’, ‘range’=>array(1,2,3)), array(‘tags’, ‘match’, ‘pattern’=>’/^[/w/s,]+$/’, ‘message’=>’Tags can only contain word characters.’), array(‘tags’, ‘normalizeTags’), array(‘title, status’, ‘safe’, ‘on’=>’search’), );}預定義完整列表:
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的別名, 確保了特性是一個有效的路徑
yii驗證rulesit分類:Yiiyii的rules驗證cValidator主要屬性attributes,builtInValidators,enableClientValidation,message,on,safe,skipOnError
經常用到的屬性有attributes,builtInvalidators,message,on這四個
下面是對應的驗證類
required:CRequiredValidator
filter:CFilterValidator
match:CRegularExpressionValidator
email:CEmailValidator
url:CUrlValidator
unique:CUniqueValidator
compare:CCompareValidator
length:CStringValidator
in:CRangeValidator
numerical:CNumberValidator
captcha:CCaptchaValidator
type:CTypeValidator
file:CFileValidator
default:CDefaultValueValidator
exist:CExistValidator
boolean:CBooleanValidator
date:CDateValidator
safe:CSafeValidator
unsafe:CUnsafeValidator
1、CRequiredValidator–必須值驗證屬性
requiredValue-mixed-所需的值
strict-boolean-是否比較嚴格
實例:array(‘username’,‘required’),不能為空
array(‘username’,‘required’,‘requiredValue’=>’lh’,’message’=>‘usernmaemustbelh’),這個值必須為lh,如果填其他值還是會驗證不過
array(‘username’,‘required’,‘requiredValue’=>’lh’,‘strict’=>true),嚴格驗證還可以在后面加‘message’=>”,’on’=>這些
2、CFilterValidator過濾驗證屬性
filter–方法名(調用用戶自己定義的函數)
實例:
array(‘username’,‘test’)functiontest(){$username=$this->username;if($username!=‘lh’){$this->addError(‘username’,‘usernamemustbelh’);}}
使用這個方法如果你還在array里面寫message=>”,給出的提示信息還是你的test里面的。也就是以test里面的錯誤信息為準
3、CRegularExpressionValidator-
正則驗證屬性allowEmpty–是否為空(默認true)
not-是否反轉的驗證邏輯(默認false)pattern–正則表達式匹配實例:
//匹配a-zarray(‘username’,‘match’,‘allowEmpty’=>true,‘pattern’=>’/[a-z]/i’,’message’=>’必須為字母’),
//匹配不是a-zarray(‘username’,‘match’,‘allowEmpty’=>true,‘not’=>true,‘pattern’=>’/[a-z]/i’,’message’=>’必須不是字母’),
4、CEmailValidator–郵箱驗證屬性:
allowEmpty–是否為空
allowName–是否允許在電子郵件地址的名稱
checkMx–是否檢查電子郵件地址的MX記錄
checkPort–是否要檢查端口25的電子郵件地址
fullPattern–正則表達式,用來驗證電子郵件地址與名稱的一部分
pattern–正則表達式,
用來驗證的屬性值實例:array(‘username’,‘email’,‘message’=>’必須為電子郵箱’,‘pattern’=>’/[a-z]/i’),
5、CUrlValidator–url驗證屬性:
allowEmpty–是否為空
defaultScheme–默認的URI方案
pattern–正則表達式
validSchemes–清單應視為有效的URI計劃。
實例:
array(‘username’,‘url’,‘message’=>’musturl’),
array(‘username’,‘url’,‘defaultScheme’=>’http://www.baidu.com’),
6、CUniqueValidator–唯一性驗證屬性:
allowEmpty–是否為空
attributeName–屬性名稱
caseSensitive–區分大小寫
className–類名
criteria–額外的查詢條件
實例:
array(‘username’,‘unique’,‘message’=>’該記錄存在’),
array(‘username’,‘unique’,‘caseSensitive’=>false,‘message’=>’該記錄存在’),
7、CCompareValidator–比較驗證屬性:
allowEmpty–是否為空
compareAttribute–需要比較的屬性
compareValue-比較的值
Operator–比較運算符
strict–嚴格驗證(值和類型都要相等)
實例://與某個值比較array(‘username’,‘compare’,‘compareValue’=>’10′,‘operator’=>’>’,‘message’=>’必須大于10′),
//與某個提交的屬性比較array(‘username’,‘compare’,‘compareAttribute’=& gt;’password’,‘operator’=>’>’,‘message’=>’必須大于password’),
8、CStringValidator–字符串驗證屬性:
allowEmpty–是否為空
encoding–編碼
is–確切的長度
max–最大長度
min–最小長度
tooLong–定義值太大的錯誤
tooShort–定義最小長度的錯誤
實例:array(‘username’,‘length’,‘max’=>10,‘min’=>5,‘tooLong’=>’太長了’,‘tooShort’=>’太短了’),
array(‘username’,‘length’,‘is’=>5,‘message’=>’長度必須為5′),
9、CRangeValidator–在某個范圍內屬性:
allowEmpty–是否為空
not–是否反轉的驗證邏輯。
range–array范圍
strict–嚴格驗證(類型和值都要一樣)
實例:array(‘username’,‘in’,‘range’=>array(1,2,3,4,5),‘message’=>’mustin12345′),
array(‘username’,‘in’,‘not’=>true,‘range’=>array(1,2,3,4,5),‘message’=>’mustnotin12345′),
10、CNumberValidator–數字驗證屬性:
allowEmpty–是否為空
integerOnly–整數
integerPattern–正則表達式匹配整數
max–最大值
min–最小值
numberPattern–匹配號碼
tooBig–值太大時的錯誤提示
tooSmall–值太小時的錯誤提示
實例:array(‘username’,‘numerical’,‘integerOnly’=>true,‘message’=>’mustbeint’),
array(‘username’,‘numerical’,‘integerOnly’=>true,‘message’=>’mustbeint’,‘max’=
新聞熱點
疑難解答