CStringValidator
鍖 | system.validators |
---|---|
缁ф壙 | class CStringValidator » CValidator » CComponent |
婧愯嚜 | 1.0 |
鐗堟湰 | $Id: CStringValidator.php 3491 2011-12-17 05:17:57Z jefftulsa $ |
婧愮爜 | framework/validators/CStringValidator.php |
CStringValidator楠岃瘉灞炴у兼湁纭畾鐨勯暱搴︺
娉ㄦ剰锛氭楠岃瘉鍣ㄤ粎閫傜敤浜庡瓧绗︿覆绫诲瀷鐨勫睘鎬с
闄や簡浣跨敤message灞炴ц缃竴涓嚜瀹氫箟閿欒鎻愮ず淇℃伅涔嬪锛 CStringValidator杩樻湁涓瀵硅嚜瀹氫箟閿欒鎻愮ず淇℃伅锛屼綘鍙互閽堝涓嶅悓 鐨勯獙璇佹儏鏅ā寮忓垎鍒娇鐢ㄣ傝涓轰竴涓お鐭殑鏁板兼寚瀹氳嚜瀹氫箟閿欒鎻 绀轰俊鎭紝浣犲彲浠ヤ娇鐢╰ooBig灞炴с傜被浼煎湴鏈tooLong銆 鎻愮ず淇℃伅鍙互鍖呭惈鍗犱綅绗︼紝鍗犱綅绗﹀彲浠ヨ瀹為檯鍐呭鏇挎崲銆傞櫎浜嗘墍鏈 楠岃瘉鍣ㄥ潎鍙瘑鍒殑 "{attribute}" 鍗犱綅绗(鍙傝CValidator)澶栵紝 CStringValidator杩樺厑璁告寚瀹氫笅鍒楀崰浣嶇锛
娉ㄦ剰锛氭楠岃瘉鍣ㄤ粎閫傜敤浜庡瓧绗︿覆绫诲瀷鐨勫睘鎬с
闄や簡浣跨敤message灞炴ц缃竴涓嚜瀹氫箟閿欒鎻愮ず淇℃伅涔嬪锛 CStringValidator杩樻湁涓瀵硅嚜瀹氫箟閿欒鎻愮ず淇℃伅锛屼綘鍙互閽堝涓嶅悓 鐨勯獙璇佹儏鏅ā寮忓垎鍒娇鐢ㄣ傝涓轰竴涓お鐭殑鏁板兼寚瀹氳嚜瀹氫箟閿欒鎻 绀轰俊鎭紝浣犲彲浠ヤ娇鐢╰ooBig灞炴с傜被浼煎湴鏈tooLong銆 鎻愮ず淇℃伅鍙互鍖呭惈鍗犱綅绗︼紝鍗犱綅绗﹀彲浠ヨ瀹為檯鍐呭鏇挎崲銆傞櫎浜嗘墍鏈 楠岃瘉鍣ㄥ潎鍙瘑鍒殑 "{attribute}" 鍗犱綅绗(鍙傝CValidator)澶栵紝 CStringValidator杩樺厑璁告寚瀹氫笅鍒楀崰浣嶇锛
鍏叡灞炴
灞炴 | 绫诲瀷 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|---|
allowEmpty | boolean | 鏄惁姝ゅ睘鎬у煎厑璁镐负null鎴杄mpty銆傞粯璁ゅ兼槸true锛 琛ㄧず濡傛灉姝ゅ睘鎬у间负绌烘椂瀹冨皢閫氳繃楠岃瘉銆 | CStringValidator |
attributes | array | 闇瑕佽楠岃瘉鐨勫睘鎬х殑鍒楄〃銆 | CValidator |
builtInValidators | array | 鍐呯疆楠岃瘉鍣ㄥ垪琛 (name=>class) | CValidator |
enableClientValidation | boolean | 鏄惁鎵ц瀹㈡埛绔獙璇併傞粯璁ゅ间负true銆 鍙傝CActiveForm::enableClientValidation浠ヤ簡瑙f洿澶氬叧浜庡鎴风楠岃瘉鐨勭粏鑺傘 | CValidator |
encoding | string | 闇瑕侀獙璇佺殑瀛楃涓茬殑缂栫爜锛堜緥濡傦紝鈥淯TF-8鈥濓級銆 浠呭綋PHP鎵╁睍mstring鍚敤鏃讹紝杩欎釜鍊兼墠浼氳浣跨敤銆 杩欎釜鍊煎皢琚綔涓簃b_strlen()鍑芥暟鐨勭浜屼釜鍙傛暟琚娇鐢ㄣ 濡傛灉杩欎釜鍊兼病鏈夎缃紝灏嗕娇鐢ㄥ簲鐢ㄧ▼搴忕殑瀛楃闆 浣滀负榛樿鍊笺 濡傛灉杩欎釜鍊艰缃负false锛岄偅涔堜笉绠bstring鏄惁鍚敤锛宻trlen()閮藉皢琚娇鐢ㄣ | CStringValidator |
is | integer | 纭畾鐨勯暱搴︺傞粯璁ゅ兼槸null锛岃〃绀烘病鏈夌‘瀹氱殑闀垮害闄愬埗銆 | CStringValidator |
max | integer | 鏈澶ч暱搴︺傞粯璁ゅ兼槸null锛岃〃绀烘病鏈夋渶澶ч檺鍒躲 | CStringValidator |
message | string | 鐢ㄦ埛鑷畾涔夌殑閿欒鎻愮ず淇℃伅銆備笉鍚岀殑楠岃瘉鍣ㄥ彲浠ュ湪璇ヤ俊鎭腑 瀹氫箟鍚勭鍗犱綅绗︼紙灏嗚瀹為檯鍊兼浛鎹級銆傚崰浣嶇鈥渰attribute}鈥濆彲浠ヨ鎵鏈 楠岃瘉鍣ㄨ瘑鍒紝瀹冧細琚娇鐢ㄥ睘鎬х殑鏍囩鏉ユ浛鎹€ | CValidator |
min | integer | 鏈鐭暱搴︺傞粯璁ゅ兼槸null锛岃〃绀烘病鏈夋渶鐭檺鍒躲 | CStringValidator |
on | array | 楠岃瘉鍣ㄥ皢琚簲鐢ㄥ埌鐨勬儏鏅ā寮忕殑鍒楄〃銆 鏁扮粍鐨勯敭-鍊奸兘鏄儏鏅ā寮忕殑鍚嶇О銆 | CValidator |
safe | boolean | 杩涜鏁村潡璧嬪兼槸鏄惁鑰冭檻姝ら獙璇佸櫒涓垪鍑虹殑灞炴х殑瀹夊叏鎬с 榛樿鍊间负true銆 | CValidator |
skipOnError | boolean | 濡傛灉褰撳墠灞炴у凡缁忓瓨鍦ㄩ獙璇侀敊璇紝杩欎釜楠岃瘉瑙勫垯 鏄惁璺宠繃銆傞粯璁ゅ兼槸false銆 | CValidator |
tooLong | string | 褰撻暱搴﹀お澶ф椂浣跨敤鐨勭敤鎴疯嚜瀹氫箟閿欒鎻愮ず淇℃伅銆 | CStringValidator |
tooShort | string | 褰撻暱搴﹀お鐭椂浣跨敤鐨勭敤鎴疯嚜瀹氫箟閿欒鎻愮ず淇℃伅銆 | CStringValidator |
鍏叡鏂规硶
鍙椾繚鎶ゆ柟娉
鏂规硶 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|
addError() | 娣诲姞鍏充簬鎸囧畾灞炴х殑涓涓敊璇彁绀轰俊鎭埌娲诲姩璁板綍涓 | CValidator |
isEmpty() | 妫娴嬬粰瀹氬兼槸鍚︿负绌恒 | CValidator |
validateAttribute() | 楠岃瘉浼犲叆瀵硅薄鐨勫睘鎬с | CStringValidator |
灞炴ц缁
allowEmpty
灞炴
public boolean $allowEmpty;
鏄惁姝ゅ睘鎬у煎厑璁镐负null鎴杄mpty銆傞粯璁ゅ兼槸true锛 琛ㄧず濡傛灉姝ゅ睘鎬у间负绌烘椂瀹冨皢閫氳繃楠岃瘉銆
encoding
灞炴
锛堝彲鐢ㄨ嚜 v1.1.1锛
public string $encoding;
闇瑕侀獙璇佺殑瀛楃涓茬殑缂栫爜锛堜緥濡傦紝鈥淯TF-8鈥濓級銆 浠呭綋PHP鎵╁睍mstring鍚敤鏃讹紝杩欎釜鍊兼墠浼氳浣跨敤銆 杩欎釜鍊煎皢琚綔涓簃b_strlen()鍑芥暟鐨勭浜屼釜鍙傛暟琚娇鐢ㄣ 濡傛灉杩欎釜鍊兼病鏈夎缃紝灏嗕娇鐢ㄥ簲鐢ㄧ▼搴忕殑瀛楃闆 浣滀负榛樿鍊笺 濡傛灉杩欎釜鍊艰缃负false锛岄偅涔堜笉绠bstring鏄惁鍚敤锛宻trlen()閮藉皢琚娇鐢ㄣ
is
灞炴
public integer $is;
纭畾鐨勯暱搴︺傞粯璁ゅ兼槸null锛岃〃绀烘病鏈夌‘瀹氱殑闀垮害闄愬埗銆
max
灞炴
public integer $max;
鏈澶ч暱搴︺傞粯璁ゅ兼槸null锛岃〃绀烘病鏈夋渶澶ч檺鍒躲
min
灞炴
public integer $min;
鏈鐭暱搴︺傞粯璁ゅ兼槸null锛岃〃绀烘病鏈夋渶鐭檺鍒躲
tooLong
灞炴
public string $tooLong;
褰撻暱搴﹀お澶ф椂浣跨敤鐨勭敤鎴疯嚜瀹氫箟閿欒鎻愮ず淇℃伅銆
tooShort
灞炴
public string $tooShort;
褰撻暱搴﹀お鐭椂浣跨敤鐨勭敤鎴疯嚜瀹氫箟閿欒鎻愮ず淇℃伅銆
鏂规硶璇︾粏
clientValidateAttribute()
鏂规硶
锛堝彲鐢ㄨ嚜 v1.1.7锛
public string clientValidateAttribute(CModel $object, string $attribute)
| ||
$object | CModel | 闇瑕侀獙璇佺殑瀵硅薄 |
$attribute | string | 闇瑕侀獙璇佺殑灞炴 |
{return} | string | 瀹㈡埛绔獙璇佽剼鏈 |
婧愮爜锛 framework/validators/CStringValidator.php#114 (鏄剧ず)
public function clientValidateAttribute($object,$attribute)
{
$label=$object->getAttributeLabel($attribute);
if(($message=$this->message)===null)
$message=Yii::t('yii','{attribute} is of the wrong length (should be {length} characters).');
$message=strtr($message, array(
'{attribute}'=>$label,
'{length}'=>$this->is,
));
if(($tooShort=$this->tooShort)===null)
$tooShort=Yii::t('yii','{attribute} is too short (minimum is {min} characters).');
$tooShort=strtr($tooShort, array(
'{attribute}'=>$label,
'{min}'=>$this->min,
));
if(($tooLong=$this->tooLong)===null)
$tooLong=Yii::t('yii','{attribute} is too long (maximum is {max} characters).');
$tooLong=strtr($tooLong, array(
'{attribute}'=>$label,
'{max}'=>$this->max,
));
$js='';
if($this->min!==null)
{
$js.="
if(value.length<{$this->min}) {
messages.push(".CJSON::encode($tooShort).");
}
";
}
if($this->max!==null)
{
$js.="
if(value.length>{$this->max}) {
messages.push(".CJSON::encode($tooLong).");
}
";
}
if($this->is!==null)
{
$js.="
if(value.length!={$this->is}) {
messages.push(".CJSON::encode($message).");
}
";
}
if($this->allowEmpty)
{
$js="
if($.trim(value)!='') {
$js
}
";
}
return $js;
}
杩斿洖鎵ц瀹㈡埛绔獙璇佹墍闇鐨凧avaScript銆
validateAttribute()
鏂规硶
protected void validateAttribute(CModel $object, string $attribute)
| ||
$object | CModel | 闇瑕侀獙璇佺殑瀵硅薄 |
$attribute | string | 闇瑕侀獙璇佺殑灞炴 |
婧愮爜锛 framework/validators/CStringValidator.php#78 (鏄剧ず)
protected function validateAttribute($object,$attribute)
{
$value=$object->$attribute;
if($this->allowEmpty && $this->isEmpty($value))
return;
if(function_exists('mb_strlen') && $this->encoding!==false)
$length=mb_strlen($value, $this->encoding ? $this->encoding : Yii::app()->charset);
else
$length=strlen($value);
if($this->min!==null && $length<$this->min)
{
$message=$this->tooShort!==null?$this->tooShort:Yii::t('yii','{attribute} is too short (minimum is {min} characters).');
$this->addError($object,$attribute,$message,array('{min}'=>$this->min));
}
if($this->max!==null && $length>$this->max)
{
$message=$this->tooLong!==null?$this->tooLong:Yii::t('yii','{attribute} is too long (maximum is {max} characters).');
$this->addError($object,$attribute,$message,array('{max}'=>$this->max));
}
if($this->is!==null && $length!==$this->is)
{
$message=$this->message!==null?$this->message:Yii::t('yii','{attribute} is of the wrong length (should be {length} characters).');
$this->addError($object,$attribute,$message,array('{length}'=>$this->is));
}
}
楠岃瘉浼犲叆瀵硅薄鐨勫睘鎬с 濡傛灉瀛樺湪浠讳綍楠岃瘉閿欒锛岄敊璇彁绀轰俊鎭皢琚坊鍔犲埌姝ゅ璞′腑銆