diff --git a/docs/guide-ru/input-validation.md b/docs/guide-ru/input-validation.md index dacd5f9..6e3cca6 100644 --- a/docs/guide-ru/input-validation.md +++ b/docs/guide-ru/input-validation.md @@ -358,8 +358,8 @@ class MyForm extends Model public function validateCountry($attribute, $params) { - if (!in_array($this->$attribute, ['USA', 'Web'])) { - $this->addError($attribute, 'Страна должна быть либо "USA" или "Web".'); + if (!in_array($this->$attribute, ['USA', 'Indonesia'])) { + $this->addError($attribute, 'Страна должна быть либо "USA" или "Indonesia".'); } } } @@ -384,7 +384,9 @@ class MyForm extends Model Вы можете реализовать свою логику проверки путем переопределения метода [[yii\validators\Validator::validateAttribute()]]. Если атрибут не прошел проверку, вызвать [[yii\base\Model::addError()]], -чтобы сохранить сообщение об ошибке в модели, как это делают [встроенные валидаторы](#inline-validators). Например: +чтобы сохранить сообщение об ошибке в модели, как это делают [встроенные валидаторы](#inline-validators). + +Валидация может быть помещена в отдельный класс [[components/validators/CountryValidator]]. В этом случае можно использовать метод [[yii\validators\Validator::addError()]] для того, чтобы добавить своё сообщение об ошибке в модель: ```php namespace app\components; @@ -395,8 +397,8 @@ class CountryValidator extends Validator { public function validateAttribute($model, $attribute) { - if (!in_array($model->$attribute, ['USA', 'Web'])) { - $this->addError($model, $attribute, 'Страна должна быть либо "USA" или "Web".'); + if (!in_array($model->$attribute, ['USA', 'Indonesia'])) { + $this->addError($model, $attribute, 'Страна должна быть либо "{country1}" либо "{country2}".', ['country1' => 'USA', 'country2' => 'Indonesia']); } } } diff --git a/docs/guide/input-validation.md b/docs/guide/input-validation.md index 99cbff9..fc69434 100644 --- a/docs/guide/input-validation.md +++ b/docs/guide/input-validation.md @@ -387,8 +387,8 @@ class MyForm extends Model public function validateCountry($attribute, $params, $validator) { - if (!in_array($this->$attribute, ['USA', 'Web'])) { - $this->addError($attribute, 'The country must be either "USA" or "Web".'); + if (!in_array($this->$attribute, ['USA', 'Indonesia'])) { + $this->addError($attribute, 'The country must be either "USA" or "Indonesia".'); } } } @@ -422,7 +422,8 @@ fails the validation, call [[yii\base\Model::addError()]] to save the error mess with [inline validators](#inline-validators). -For example the inline validator above could be moved into new [[components/validators/CountryValidator]] class. +For example, the inline validator above could be moved into new [[components/validators/CountryValidator]] class. +In this case we can use [[yii\validators\Validator::addError()]] to set customized message for the model. ```php namespace app\components; @@ -433,8 +434,8 @@ class CountryValidator extends Validator { public function validateAttribute($model, $attribute) { - if (!in_array($model->$attribute, ['USA', 'Web'])) { - $this->addError($model, $attribute, 'The country must be either "USA" or "Web".'); + if (!in_array($model->$attribute, ['USA', 'Indonesia'])) { + $this->addError($model, $attribute, 'The country must be either "{country1}" or "{country2}".', ['country1' => 'USA', 'country2' => 'Indonesia']); } } }