Commit ae6c69fc by Qiang Xue

refacotring validators.

parent 86f947e9
...@@ -36,6 +36,17 @@ class BooleanValidator extends Validator ...@@ -36,6 +36,17 @@ class BooleanValidator extends Validator
public $strict = false; public $strict = false;
/** /**
* Initializes the validator.
*/
public function init()
{
parent::init();
if ($this->message === null) {
$this->message = Yii::t('yii|{attribute} must be either "{true}" or "{false}".');
}
}
/**
* Validates the attribute of the object. * Validates the attribute of the object.
* If there is any error, the error message is added to the object. * If there is any error, the error message is added to the object.
* @param \yii\base\Model $object the object being validated * @param \yii\base\Model $object the object being validated
...@@ -45,8 +56,7 @@ class BooleanValidator extends Validator ...@@ -45,8 +56,7 @@ class BooleanValidator extends Validator
{ {
$value = $object->$attribute; $value = $object->$attribute;
if (!$this->validateValue($value)) { if (!$this->validateValue($value)) {
$message = $this->message !== null ? $this->message : Yii::t('yii|{attribute} must be either "{true}" or "{false}".'); $this->addError($object, $attribute, $this->message, array(
$this->addError($object, $attribute, $message, array(
'{true}' => $this->trueValue, '{true}' => $this->trueValue,
'{false}' => $this->falseValue, '{false}' => $this->falseValue,
)); ));
...@@ -72,15 +82,14 @@ class BooleanValidator extends Validator ...@@ -72,15 +82,14 @@ class BooleanValidator extends Validator
*/ */
public function clientValidateAttribute($object, $attribute) public function clientValidateAttribute($object, $attribute)
{ {
$message = ($this->message !== null) ? $this->message : Yii::t('yii|{attribute} must be either "{true}" or "{false}".'); $message = strtr($this->message, array(
$message = strtr($message, array(
'{attribute}' => $object->getAttributeLabel($attribute), '{attribute}' => $object->getAttributeLabel($attribute),
'{value}' => $object->$attribute, '{value}' => $object->$attribute,
'{true}' => $this->trueValue, '{true}' => $this->trueValue,
'{false}' => $this->falseValue, '{false}' => $this->falseValue,
)); ));
return " return "
if(" . ($this->allowEmpty ? "$.trim(value)!='' && " : '') . "value!=" . json_encode($this->trueValue) . " && value!=" . json_encode($this->falseValue) . ") { if(" . ($this->skipOnEmpty ? "$.trim(value)!='' && " : '') . "value!=" . json_encode($this->trueValue) . " && value!=" . json_encode($this->falseValue) . ") {
messages.push(" . json_encode($message) . "); messages.push(" . json_encode($message) . ");
} }
"; ";
......
...@@ -31,6 +31,17 @@ class CaptchaValidator extends Validator ...@@ -31,6 +31,17 @@ class CaptchaValidator extends Validator
/** /**
* Initializes the validator.
*/
public function init()
{
parent::init();
if ($this->message === null) {
$this->message = Yii::t('yii|The verification code is incorrect.');
}
}
/**
* Validates the attribute of the object. * Validates the attribute of the object.
* If there is any error, the error message is added to the object. * If there is any error, the error message is added to the object.
* @param \yii\base\Model $object the object being validated * @param \yii\base\Model $object the object being validated
...@@ -40,8 +51,7 @@ class CaptchaValidator extends Validator ...@@ -40,8 +51,7 @@ class CaptchaValidator extends Validator
{ {
$value = $object->$attribute; $value = $object->$attribute;
if (!$this->validateValue($value)) { if (!$this->validateValue($value)) {
$message = $this->message !== null ? $this->message : Yii::t('yii|The verification code is incorrect.'); $this->addError($object, $attribute, $this->message);
$this->addError($object, $attribute, $message);
} }
} }
...@@ -83,8 +93,7 @@ class CaptchaValidator extends Validator ...@@ -83,8 +93,7 @@ class CaptchaValidator extends Validator
public function clientValidateAttribute($object, $attribute) public function clientValidateAttribute($object, $attribute)
{ {
$captcha = $this->getCaptchaAction(); $captcha = $this->getCaptchaAction();
$message = $this->message !== null ? $this->message : \Yii::t('yii|The verification code is incorrect.'); $message = strtr($this->message, array(
$message = strtr($message, array(
'{attribute}' => $object->getAttributeLabel($attribute), '{attribute}' => $object->getAttributeLabel($attribute),
'{value}' => $object->$attribute, '{value}' => $object->$attribute,
)); ));
...@@ -102,7 +111,7 @@ if(h != hash) { ...@@ -102,7 +111,7 @@ if(h != hash) {
} }
"; ";
if ($this->allowEmpty) { if ($this->skipOnEmpty) {
$js = " $js = "
if($.trim(value)!='') { if($.trim(value)!='') {
$js $js
......
...@@ -223,7 +223,7 @@ class CompareValidator extends Validator ...@@ -223,7 +223,7 @@ class CompareValidator extends Validator
)); ));
return " return "
if (" . ($this->allowEmpty ? "$.trim(value)!='' && " : '') . $condition . ") { if (" . ($this->skipOnEmpty ? "$.trim(value)!='' && " : '') . $condition . ") {
messages.push(" . json_encode($message) . "); messages.push(" . json_encode($message) . ");
} }
"; ";
......
...@@ -32,6 +32,17 @@ class DateValidator extends Validator ...@@ -32,6 +32,17 @@ class DateValidator extends Validator
public $timestampAttribute; public $timestampAttribute;
/** /**
* Initializes the validator.
*/
public function init()
{
parent::init();
if ($this->message === null) {
$this->message = Yii::t('yii|The format of {attribute} is invalid.');
}
}
/**
* Validates the attribute of the object. * Validates the attribute of the object.
* If there is any error, the error message is added to the object. * If there is any error, the error message is added to the object.
* @param \yii\base\Model $object the object being validated * @param \yii\base\Model $object the object being validated
...@@ -40,10 +51,13 @@ class DateValidator extends Validator ...@@ -40,10 +51,13 @@ class DateValidator extends Validator
public function validateAttribute($object, $attribute) public function validateAttribute($object, $attribute)
{ {
$value = $object->$attribute; $value = $object->$attribute;
if (is_array($value)) {
$this->addError($object, $attribute, $this->message);
return;
}
$date = DateTime::createFromFormat($this->format, $value); $date = DateTime::createFromFormat($this->format, $value);
if ($date === false) { if ($date === false) {
$message = $this->message !== null ? $this->message : Yii::t('yii|The format of {attribute} is invalid.'); $this->addError($object, $attribute, $this->message);
$this->addError($object, $attribute, $message);
} elseif ($this->timestampAttribute !== false) { } elseif ($this->timestampAttribute !== false) {
$object->{$this->timestampAttribute} = $date->getTimestamp(); $object->{$this->timestampAttribute} = $date->getTimestamp();
} }
......
...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
namespace yii\validators; namespace yii\validators;
use Yii;
/** /**
* EmailValidator validates that the attribute value is a valid email address. * EmailValidator validates that the attribute value is a valid email address.
* *
...@@ -44,6 +46,17 @@ class EmailValidator extends Validator ...@@ -44,6 +46,17 @@ class EmailValidator extends Validator
public $checkPort = false; public $checkPort = false;
/** /**
* Initializes the validator.
*/
public function init()
{
parent::init();
if ($this->message === null) {
$this->message = Yii::t('yii|{attribute} is not a valid email address.');
}
}
/**
* Validates the attribute of the object. * Validates the attribute of the object.
* If there is any error, the error message is added to the object. * If there is any error, the error message is added to the object.
* @param \yii\base\Model $object the object being validated * @param \yii\base\Model $object the object being validated
...@@ -53,8 +66,7 @@ class EmailValidator extends Validator ...@@ -53,8 +66,7 @@ class EmailValidator extends Validator
{ {
$value = $object->$attribute; $value = $object->$attribute;
if (!$this->validateValue($value)) { if (!$this->validateValue($value)) {
$message = ($this->message !== null) ? $this->message : \Yii::t('yii|{attribute} is not a valid email address.'); $this->addError($object, $attribute, $this->message);
$this->addError($object, $attribute, $message);
} }
} }
...@@ -88,8 +100,7 @@ class EmailValidator extends Validator ...@@ -88,8 +100,7 @@ class EmailValidator extends Validator
*/ */
public function clientValidateAttribute($object, $attribute) public function clientValidateAttribute($object, $attribute)
{ {
$message = ($this->message !== null) ? $this->message : \Yii::t('yii|{attribute} is not a valid email address.'); $message = strtr($this->message, array(
$message = strtr($message, array(
'{attribute}' => $object->getAttributeLabel($attribute), '{attribute}' => $object->getAttributeLabel($attribute),
'{value}' => $object->$attribute, '{value}' => $object->$attribute,
)); ));
...@@ -100,7 +111,7 @@ class EmailValidator extends Validator ...@@ -100,7 +111,7 @@ class EmailValidator extends Validator
} }
return " return "
if(" . ($this->allowEmpty ? "$.trim(value)!='' && " : '') . $condition . ") { if(" . ($this->skipOnEmpty ? "$.trim(value)!='' && " : '') . $condition . ") {
messages.push(" . json_encode($message) . "); messages.push(" . json_encode($message) . ");
} }
"; ";
......
...@@ -37,6 +37,18 @@ class ExistValidator extends Validator ...@@ -37,6 +37,18 @@ class ExistValidator extends Validator
*/ */
public $attributeName; public $attributeName;
/**
* Initializes the validator.
*/
public function init()
{
parent::init();
if ($this->message === null) {
$this->message = Yii::t('yii|{attribute} is invalid.');
}
}
/** /**
* Validates the attribute of the object. * Validates the attribute of the object.
* If there is any error, the error message is added to the object. * If there is any error, the error message is added to the object.
...@@ -49,7 +61,7 @@ class ExistValidator extends Validator ...@@ -49,7 +61,7 @@ class ExistValidator extends Validator
$value = $object->$attribute; $value = $object->$attribute;
if (is_array($value)) { if (is_array($value)) {
$this->addError($object, $attribute, Yii::t('yii|{attribute} is invalid.')); $this->addError($object, $attribute, $this->message);
return; return;
} }
...@@ -59,8 +71,7 @@ class ExistValidator extends Validator ...@@ -59,8 +71,7 @@ class ExistValidator extends Validator
$query = $className::find(); $query = $className::find();
$query->where(array($attributeName => $value)); $query->where(array($attributeName => $value));
if (!$query->exists()) { if (!$query->exists()) {
$message = $this->message !== null ? $this->message : Yii::t('yii|{attribute} "{value}" is invalid.'); $this->addError($object, $attribute, $this->message);
$this->addError($object, $attribute, $message);
} }
} }
......
...@@ -152,7 +152,7 @@ if(value>{$this->max}) { ...@@ -152,7 +152,7 @@ if(value>{$this->max}) {
"; ";
} }
if ($this->allowEmpty) { if ($this->skipOnEmpty) {
$js = " $js = "
if(jQuery.trim(value)!='') { if(jQuery.trim(value)!='') {
$js $js
......
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
*/ */
namespace yii\validators; namespace yii\validators;
use Yii;
use yii\base\InvalidConfigException; use yii\base\InvalidConfigException;
/** /**
...@@ -44,6 +46,9 @@ class RangeValidator extends Validator ...@@ -44,6 +46,9 @@ class RangeValidator extends Validator
if (!is_array($this->range)) { if (!is_array($this->range)) {
throw new InvalidConfigException('The "range" property must be set.'); throw new InvalidConfigException('The "range" property must be set.');
} }
if ($this->message === null) {
$this->message = Yii::t('yii|{attribute} is invalid.');
}
} }
/** /**
...@@ -55,11 +60,10 @@ class RangeValidator extends Validator ...@@ -55,11 +60,10 @@ class RangeValidator extends Validator
public function validateAttribute($object, $attribute) public function validateAttribute($object, $attribute)
{ {
$value = $object->$attribute; $value = $object->$attribute;
$message = $this->message !== null ? $this->message : \Yii::t('yii|{attribute} is invalid.');
if (!$this->not && !in_array($value, $this->range, $this->strict)) { if (!$this->not && !in_array($value, $this->range, $this->strict)) {
$this->addError($object, $attribute, $message); $this->addError($object, $attribute, $this->message);
} elseif ($this->not && in_array($value, $this->range, $this->strict)) { } elseif ($this->not && in_array($value, $this->range, $this->strict)) {
$this->addError($object, $attribute, $message); $this->addError($object, $attribute, $this->message);
} }
} }
...@@ -82,10 +86,7 @@ class RangeValidator extends Validator ...@@ -82,10 +86,7 @@ class RangeValidator extends Validator
*/ */
public function clientValidateAttribute($object, $attribute) public function clientValidateAttribute($object, $attribute)
{ {
if (($message = $this->message) === null) { $message = strtr($this->message, array(
$message = \Yii::t('yii|{attribute} is invalid.');
}
$message = strtr($message, array(
'{attribute}' => $object->getAttributeLabel($attribute), '{attribute}' => $object->getAttributeLabel($attribute),
'{value}' => $object->$attribute, '{value}' => $object->$attribute,
)); ));
...@@ -97,7 +98,7 @@ class RangeValidator extends Validator ...@@ -97,7 +98,7 @@ class RangeValidator extends Validator
$range = json_encode($range); $range = json_encode($range);
return " return "
if (" . ($this->allowEmpty ? "$.trim(value)!='' && " : '') . ($this->not ? "$.inArray(value, $range)>=0" : "$.inArray(value, $range)<0") . ") { if (" . ($this->skipOnEmpty ? "$.trim(value)!='' && " : '') . ($this->not ? "$.inArray(value, $range)>=0" : "$.inArray(value, $range)<0") . ") {
messages.push(" . json_encode($message) . "); messages.push(" . json_encode($message) . ");
} }
"; ";
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
namespace yii\validators; namespace yii\validators;
use Yii;
use yii\base\InvalidConfigException; use yii\base\InvalidConfigException;
/** /**
...@@ -40,6 +41,9 @@ class RegularExpressionValidator extends Validator ...@@ -40,6 +41,9 @@ class RegularExpressionValidator extends Validator
if ($this->pattern === null) { if ($this->pattern === null) {
throw new InvalidConfigException('The "pattern" property must be set.'); throw new InvalidConfigException('The "pattern" property must be set.');
} }
if ($this->message === null) {
$this->message = Yii::t('yii|{attribute} is invalid.');
}
} }
/** /**
...@@ -52,8 +56,7 @@ class RegularExpressionValidator extends Validator ...@@ -52,8 +56,7 @@ class RegularExpressionValidator extends Validator
{ {
$value = $object->$attribute; $value = $object->$attribute;
if (!$this->validateValue($value)) { if (!$this->validateValue($value)) {
$message = $this->message !== null ? $this->message : \Yii::t('yii|{attribute} is invalid.'); $this->addError($object, $attribute, $this->message);
$this->addError($object, $attribute, $message);
} }
} }
...@@ -78,8 +81,7 @@ class RegularExpressionValidator extends Validator ...@@ -78,8 +81,7 @@ class RegularExpressionValidator extends Validator
*/ */
public function clientValidateAttribute($object, $attribute) public function clientValidateAttribute($object, $attribute)
{ {
$message = ($this->message !== null) ? $this->message : \Yii::t('yii|{attribute} is invalid.'); $message = strtr($this->message, array(
$message = strtr($message, array(
'{attribute}' => $object->getAttributeLabel($attribute), '{attribute}' => $object->getAttributeLabel($attribute),
'{value}' => $object->$attribute, '{value}' => $object->$attribute,
)); ));
...@@ -99,7 +101,7 @@ class RegularExpressionValidator extends Validator ...@@ -99,7 +101,7 @@ class RegularExpressionValidator extends Validator
} }
return " return "
if (" . ($this->allowEmpty ? "$.trim(value)!='' && " : '') . ($this->not ? '' : '!') . "value.match($pattern)) { if (" . ($this->skipOnEmpty ? "$.trim(value)!='' && " : '') . ($this->not ? '' : '!') . "value.match($pattern)) {
messages.push(" . json_encode($message) . "); messages.push(" . json_encode($message) . ");
} }
"; ";
......
...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
namespace yii\validators; namespace yii\validators;
use Yii;
/** /**
* RequiredValidator validates that the specified attribute does not have null or empty value. * RequiredValidator validates that the specified attribute does not have null or empty value.
* *
...@@ -39,6 +41,17 @@ class RequiredValidator extends Validator ...@@ -39,6 +41,17 @@ class RequiredValidator extends Validator
public $strict = false; public $strict = false;
/** /**
* Initializes the validator.
*/
public function init()
{
parent::init();
if ($this->message === null) {
$this->message = $this->requiredValue === null ? Yii::t('yii|{attribute} is invalid.') : Yii::t('yii|{attribute} must be "{requiredValue}".');
}
}
/**
* Validates the attribute of the object. * Validates the attribute of the object.
* If there is any error, the error message is added to the object. * If there is any error, the error message is added to the object.
* @param \yii\base\Model $object the object being validated * @param \yii\base\Model $object the object being validated
...@@ -49,13 +62,11 @@ class RequiredValidator extends Validator ...@@ -49,13 +62,11 @@ class RequiredValidator extends Validator
$value = $object->$attribute; $value = $object->$attribute;
if ($this->requiredValue === null) { if ($this->requiredValue === null) {
if ($this->strict && $value === null || !$this->strict && $this->isEmpty($value, true)) { if ($this->strict && $value === null || !$this->strict && $this->isEmpty($value, true)) {
$message = ($this->message !== null) ? $this->message : \Yii::t('yii|{attribute} cannot be blank.'); $this->addError($object, $attribute, $this->message);
$this->addError($object, $attribute, $message);
} }
} else { } else {
if (!$this->strict && $value != $this->requiredValue || $this->strict && $value !== $this->requiredValue) { if (!$this->strict && $value != $this->requiredValue || $this->strict && $value !== $this->requiredValue) {
$message = ($this->message !== null) ? $this->message : \Yii::t('yii|{attribute} must be "{requiredValue}".'); $this->addError($object, $attribute, $this->message, array(
$this->addError($object, $attribute, $message, array(
'{requiredValue}' => $this->requiredValue, '{requiredValue}' => $this->requiredValue,
)); ));
} }
...@@ -87,12 +98,8 @@ class RequiredValidator extends Validator ...@@ -87,12 +98,8 @@ class RequiredValidator extends Validator
*/ */
public function clientValidateAttribute($object, $attribute) public function clientValidateAttribute($object, $attribute)
{ {
$message = $this->message;
if ($this->requiredValue !== null) { if ($this->requiredValue !== null) {
if ($message === null) { $message = strtr($this->message, array(
$message = \Yii::t('yii|{attribute} must be "{requiredValue}".');
}
$message = strtr($message, array(
'{attribute}' => $object->getAttributeLabel($attribute), '{attribute}' => $object->getAttributeLabel($attribute),
'{value}' => $object->$attribute, '{value}' => $object->$attribute,
'{requiredValue}' => $this->requiredValue, '{requiredValue}' => $this->requiredValue,
...@@ -103,10 +110,7 @@ if (value != " . json_encode($this->requiredValue) . ") { ...@@ -103,10 +110,7 @@ if (value != " . json_encode($this->requiredValue) . ") {
} }
"; ";
} else { } else {
if ($message === null) { $message = strtr($this->message, array(
$message = \Yii::t('yii|{attribute} cannot be blank.');
}
$message = strtr($message, array(
'{attribute}' => $object->getAttributeLabel($attribute), '{attribute}' => $object->getAttributeLabel($attribute),
'{value}' => $object->$attribute, '{value}' => $object->$attribute,
)); ));
......
...@@ -63,6 +63,18 @@ class StringValidator extends Validator ...@@ -63,6 +63,18 @@ class StringValidator extends Validator
if ($this->encoding === null) { if ($this->encoding === null) {
$this->encoding = Yii::$app->charset; $this->encoding = Yii::$app->charset;
} }
if ($this->message === null) {
$this->message = Yii::t('yii|{attribute} must be a string.');
}
if ($this->min !== null && $this->tooShort === null) {
$this->tooShort = Yii::t('yii|{attribute} should contain at least {min} characters.');
}
if ($this->max !== null && $this->tooLong === null) {
$this->tooLong = Yii::t('yii|{attribute} should contain at most {max} characters.');
}
if ($this->is !== null && $this->notEqual === null) {
$this->notEqual = Yii::t('yii|{attribute} should contain {length} characters.');
}
} }
/** /**
...@@ -76,24 +88,20 @@ class StringValidator extends Validator ...@@ -76,24 +88,20 @@ class StringValidator extends Validator
$value = $object->$attribute; $value = $object->$attribute;
if (!is_string($value)) { if (!is_string($value)) {
$message = ($this->message !== null) ? $this->message : Yii::t('yii|{attribute} must be a string.'); $this->addError($object, $attribute, $this->message);
$this->addError($object, $attribute, $message);
return; return;
} }
$length = mb_strlen($value, $this->encoding); $length = mb_strlen($value, $this->encoding);
if ($this->min !== null && $length < $this->min) { if ($this->min !== null && $length < $this->min) {
$message = ($this->tooShort !== null) ? $this->tooShort : Yii::t('yii|{attribute} should contain at least {min} characters.'); $this->addError($object, $attribute, $this->tooShort, array('{min}' => $this->min));
$this->addError($object, $attribute, $message, array('{min}' => $this->min));
} }
if ($this->max !== null && $length > $this->max) { if ($this->max !== null && $length > $this->max) {
$message = ($this->tooLong !== null) ? $this->tooLong : Yii::t('yii|{attribute} should contain at most {max} characters.'); $this->addError($object, $attribute, $this->tooLong, array('{max}' => $this->max));
$this->addError($object, $attribute, $message, array('{max}' => $this->max));
} }
if ($this->is !== null && $length !== $this->is) { if ($this->is !== null && $length !== $this->is) {
$message = ($this->notEqual !== null) ? $this->notEqual : Yii::t('yii|{attribute} should contain {length} characters.'); $this->addError($object, $attribute, $this->notEqual, array('{length}' => $this->is));
$this->addError($object, $attribute, $message, array('{length}' => $this->is));
} }
} }
...@@ -124,28 +132,19 @@ class StringValidator extends Validator ...@@ -124,28 +132,19 @@ class StringValidator extends Validator
$label = $object->getAttributeLabel($attribute); $label = $object->getAttributeLabel($attribute);
$value = $object->$attribute; $value = $object->$attribute;
if (($notEqual = $this->notEqual) === null) { $notEqual = strtr($this->notEqual, array(
$notEqual = Yii::t('yii|{attribute} should contain {length} characters.');
}
$notEqual = strtr($notEqual, array(
'{attribute}' => $label, '{attribute}' => $label,
'{value}' => $value, '{value}' => $value,
'{length}' => $this->is, '{length}' => $this->is,
)); ));
if (($tooShort = $this->tooShort) === null) { $tooShort = strtr($this->tooShort, array(
$tooShort = Yii::t('yii|{attribute} should contain at least {min} characters.');
}
$tooShort = strtr($tooShort, array(
'{attribute}' => $label, '{attribute}' => $label,
'{value}' => $value, '{value}' => $value,
'{min}' => $this->min, '{min}' => $this->min,
)); ));
if (($tooLong = $this->tooLong) === null) { $tooLong = strtr($this->tooLong, array(
$tooLong = Yii::t('yii|{attribute} should contain at most {max} characters.');
}
$tooLong = strtr($tooLong, array(
'{attribute}' => $label, '{attribute}' => $label,
'{value}' => $value, '{value}' => $value,
'{max}' => $this->max, '{max}' => $this->max,
...@@ -174,7 +173,7 @@ if(value.length!= {$this->is}) { ...@@ -174,7 +173,7 @@ if(value.length!= {$this->is}) {
"; ";
} }
if ($this->allowEmpty) { if ($this->skipOnEmpty) {
$js = " $js = "
if($.trim(value)!='') { if($.trim(value)!='') {
$js $js
......
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
*/ */
namespace yii\validators; namespace yii\validators;
use Yii;
use yii\base\InvalidConfigException; use yii\base\InvalidConfigException;
/** /**
...@@ -31,6 +33,17 @@ class UniqueValidator extends Validator ...@@ -31,6 +33,17 @@ class UniqueValidator extends Validator
public $attributeName; public $attributeName;
/** /**
* Initializes the validator.
*/
public function init()
{
parent::init();
if ($this->message === null) {
$this->message = Yii::t('yii|{attribute} "{value}" has already been taken.');
}
}
/**
* Validates the attribute of the object. * Validates the attribute of the object.
* If there is any error, the error message is added to the object. * If there is any error, the error message is added to the object.
* @param \yii\db\ActiveRecord $object the object being validated * @param \yii\db\ActiveRecord $object the object being validated
...@@ -52,7 +65,7 @@ class UniqueValidator extends Validator ...@@ -52,7 +65,7 @@ class UniqueValidator extends Validator
$table = $className::getTableSchema(); $table = $className::getTableSchema();
if (($column = $table->getColumn($attributeName)) === null) { if (($column = $table->getColumn($attributeName)) === null) {
throw new InvalidConfigException('Table "' . $table->name . '" does not have a column named "' . $attributeName . '"'); throw new InvalidConfigException("Table '{$table->name}' does not have a column named '$attributeName'.");
} }
$query = $className::find(); $query = $className::find();
...@@ -81,8 +94,7 @@ class UniqueValidator extends Validator ...@@ -81,8 +94,7 @@ class UniqueValidator extends Validator
} }
if ($exists) { if ($exists) {
$message = $this->message !== null ? $this->message : \Yii::t('yii|{attribute} "{value}" has already been taken.'); $this->addError($object, $attribute, $this->message);
$this->addError($object, $attribute, $message);
} }
} }
} }
\ No newline at end of file
...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
namespace yii\validators; namespace yii\validators;
use Yii;
/** /**
* UrlValidator validates that the attribute value is a valid http or https URL. * UrlValidator validates that the attribute value is a valid http or https URL.
* *
...@@ -33,6 +35,18 @@ class UrlValidator extends Validator ...@@ -33,6 +35,18 @@ class UrlValidator extends Validator
**/ **/
public $defaultScheme; public $defaultScheme;
/**
* Initializes the validator.
*/
public function init()
{
parent::init();
if ($this->message === null) {
$this->message = Yii::t('yii|{attribute} is not a valid URL.');
}
}
/** /**
* Validates the attribute of the object. * Validates the attribute of the object.
* If there is any error, the error message is added to the object. * If there is any error, the error message is added to the object.
...@@ -47,8 +61,7 @@ class UrlValidator extends Validator ...@@ -47,8 +61,7 @@ class UrlValidator extends Validator
$object->$attribute = $this->defaultScheme . '://' . $value; $object->$attribute = $this->defaultScheme . '://' . $value;
} }
} else { } else {
$message = ($this->message !== null) ? $this->message : \Yii::t('yii|{attribute} is not a valid URL.'); $this->addError($object, $attribute, $this->message);
$this->addError($object, $attribute, $message);
} }
} }
...@@ -87,8 +100,7 @@ class UrlValidator extends Validator ...@@ -87,8 +100,7 @@ class UrlValidator extends Validator
*/ */
public function clientValidateAttribute($object, $attribute) public function clientValidateAttribute($object, $attribute)
{ {
$message = ($this->message !== null) ? $this->message : \Yii::t('yii|{attribute} is not a valid URL.'); $message = strtr($this->message, array(
$message = strtr($message, array(
'{attribute}' => $object->getAttributeLabel($attribute), '{attribute}' => $object->getAttributeLabel($attribute),
'{value}' => $object->$attribute, '{value}' => $object->$attribute,
)); ));
...@@ -113,7 +125,7 @@ $js ...@@ -113,7 +125,7 @@ $js
"; ";
} }
if ($this->allowEmpty) { if ($this->skipOnEmpty) {
$js = " $js = "
if($.trim(value)!='') { if($.trim(value)!='') {
$js $js
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment