diff --git a/docs/guide-ru/input-validation.md b/docs/guide-ru/input-validation.md index 6e3cca6a70f..80cd40d3077 100644 --- a/docs/guide-ru/input-validation.md +++ b/docs/guide-ru/input-validation.md @@ -3,7 +3,7 @@ Как правило, вы никогда не должны доверять данным, полученным от пользователей и всегда проверять их прежде, чем работать с ними и добавлять в базу данных. -Учитывая [модель](structure-models.md) данных которые должен заполнить пользователь, можно проверить эти данные на валидность воспользовавшись методом [[yii\base\Model::validate()]]. Метод возвращает логическое значение с результатом валидации ложь/истина. Если данные не валидны, ошибку можно получить воспользовавшись методом [[yii\base\Model::errors]]. Рассмотрим пример: +Учитывая [модель](structure-models.md) данных которые должен заполнить пользователь, можно проверить эти данные на валидность воспользовавшись методом [[yii\base\Model::validate()]]. Метод возвращает логическое значение с результатом валидации ложь/истина. Если данные не валидны, ошибку можно получить воспользовавшись свойством [[yii\base\Model::errors]]. Рассмотрим пример: ```php $model = new \app\models\ContactForm; @@ -116,7 +116,7 @@ public function rules() ### Настройка сообщений об ошибках Большинство валидаторов имеют сообщения об ошибках по умолчанию, которые будут добавлены к модели когда его атрибуты не проходят проверку. -Например, [[yii\validators\RequiredValidator|required]] валидатор добавил к модели сообщение об ошибке "Имя пользователя не может быть пустым." когда атрибут `username` не удовлетворил правилу этого валидатора. +Например, [[yii\validators\RequiredValidator|required]] валидатор добавляет к модели сообщение об ошибке "Имя пользователя не может быть пустым." когда атрибут `username` не удовлетворил правилу этого валидатора. Вы можете настроить сообщение об ошибке для каждого правила, указав свойство `message` при объявлении правила, следующим образом: @@ -144,7 +144,7 @@ public function rules() * [[yii\base\Model::beforeValidate()]]: выполнение по умолчанию вызовет [[yii\base\Model::EVENT_BEFORE_VALIDATE]] событие. Вы можете переопределить этот метод, или обрабатывать это событие, чтобы сделать некоторую предобработку данных (например, форматирование входных данных), метод вызывается до начала валидации. Этот метод должен возвращать логическое значение, указывающее, следует ли продолжать проверку или нет. * [[yii\base\Model::afterValidate()]]: выполнение по умолчанию вызовет [[yii\base\Model::EVENT_AFTER_VALIDATE]] - событие. Вы можете либо переопределить этот метод или обрабатывать это событие, чтобы сделать некоторую постобработку данных(Например, отформатировать данные удобным для дальнейшей обработки образом), метод вызывается после валидации. + событие. Вы можете либо переопределить этот метод или обрабатывать это событие, чтобы сделать некоторую постобработку данных (например, отформатировать данные удобным для дальнейшей обработки образом), метод вызывается после валидации. ### Условные валидации @@ -168,7 +168,7 @@ function ($model, $attribute) ``` Если вам нужна поддержка условной проверки на стороне клиента, вы должны настроить свойство метода -[[yii\validators\Validator::whenClient|whenClient]] которое принимает строку, представляющую JavaScript +[[yii\validators\Validator::whenClient|whenClient]], которое принимает строку, представляющую JavaScript функцию, возвращаемое значение определяет, следует ли применять правило или нет. Например: ```php @@ -186,7 +186,7 @@ function ($model, $attribute) Например, вы хотите обрезать пробелы вокруг `username`. Вы можете использовать правила валидации для достижения этой цели. -В следующих примерах показано, как обрезать пробелы в входных данных и превратить пустые входные данные в `NULL` +В следующих примерах показано, как обрезать пробелы во входных данных и превратить пустые входные данные в `NULL` с помощью [trim](tutorial-core-validators.md#trim) и указать значения по умолчанию с помощью свойства [default](tutorial-core-validators.md#default) основного валидатора: @@ -221,7 +221,7 @@ return [ ``` По умолчанию входные данные считаются пустыми, если их значением является пустая строка, пустой массив или `null`. -Вы можете настроить значение по умолчанию с помощью свойства [[yii\validators\Validator::isEmpty]] +Вы можете реализовать свою логику определения пустых входящих данных путем переопределения метода [[yii\validators\Validator::isEmpty]] используя анонимную функцию. Например: ```php @@ -239,7 +239,7 @@ return [ ## Специальная валидация -Иногда вам нужно сделать специальную валидацию для значений, которые не связаны с какой-либо модели. +Иногда вам нужно сделать специальную валидацию для значений, которые не связаны с какой-либо моделью. Если необходимо выполнить только один тип проверки (например, проверка адреса электронной почты), вы можете вызвать метод [[yii\validators\Validator::validate()|validate()]] нужного валидатора. @@ -380,7 +380,7 @@ class MyForm extends Model ### Автономные валидаторы -Автономный валидатор - это класс, расширяющий [[yii\validators\Validator]] или его дочерних класс. +Автономный валидатор - это класс, расширяющий [[yii\validators\Validator]] или его дочерний класс. Вы можете реализовать свою логику проверки путем переопределения метода [[yii\validators\Validator::validateAttribute()]]. Если атрибут не прошел проверку, вызвать [[yii\base\Model::addError()]], @@ -404,7 +404,7 @@ class CountryValidator extends Validator } ``` -Если вы хотите, чтобы ваш валидатор поддерживал проверку значений, без модели, также необходимо переопределить +Если вы хотите, чтобы ваш валидатор поддерживал проверку значений без модели, также необходимо переопределить [[yii\validators\Validator::validate()]]. Вы можете также переопределить [[yii\validators\Validator::validateValue()]] вместо `validateAttribute()` и `validate()`, потому что по умолчанию последние два метода @@ -414,8 +414,8 @@ class CountryValidator extends Validator ## Валидация на стороне клиента Проверка на стороне клиента на основе JavaScript целесообразна, когда конечные пользователи вводят -входные данные через HTML-формы, так как эта проверка позволяет пользователям узнать, ошибки ввода -быстрее, и таким образом улучшает ваш пользовательский интерфейс. Вы можете использовать или +входные данные через HTML-формы, так как эта проверка позволяет пользователям узнать ошибки ввода +быстрее и таким образом улучшает ваш пользовательский интерфейс. Вы можете использовать или реализовать валидатор, который поддерживает валидацию на стороне клиента *в дополнение* к проверке на стороне сервера. > Info: Проверка на стороне клиента желательна, но необязательна. Её основная цель заключается в @@ -430,8 +430,8 @@ class CountryValidator extends Validator Многие [основные валидаторы](tutorial-core-validators.md) поддерживают проверку на стороне клиента out-of-the-box. Все, что вам нужно сделать, это просто использовать [[yii\widgets\ActiveForm]] для построения HTML-форм. -Например, `LoginForm` ниже объявляет два правила: один использует [required](tutorial-core-validators.md#required) -основные валидаторы, который поддерживается на стороне клиента и сервера; другой использует `validatePassword` +Например, `LoginForm` ниже объявляет два правила: первое использует [required](tutorial-core-validators.md#required) +основной валидатор, который поддерживается на стороне клиента и сервера; второе использует `validatePassword` встроенный валидатор, который поддерживается только на стороне сервера. ```php @@ -498,7 +498,7 @@ HTML-форма построена с помощью следующего код - `attribute`: имя атрибута для проверки. - `value`: проверяемое значение. -- `messages`: массив, используемый для хранения сообщений об ошибках, проверки значения атрибута. +- `messages`: массив, используемый для хранения сообщений об ошибках проверки значения атрибута. - `deferred`: массив, который содержит отложенные объекты (описано в следующем подразделе). В следующем примере мы создаем `StatusValidator` который проверяет значение поля на соответствие допустимым статусам.