mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 06:37:55 +08:00 
			
		
		
		
	Merge pull request #4869 from prosophist/feature
[ci skip] Russian translation for tutorial-core-validators
This commit is contained in:
		
							
								
								
									
										512
									
								
								docs/guide-ru/tutorial-core-validators.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										512
									
								
								docs/guide-ru/tutorial-core-validators.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,512 @@
 | 
				
			|||||||
 | 
					Встроенные валидаторы
 | 
				
			||||||
 | 
					===============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Yii предоставляет встроенный набор часто используемых валидаторов, расположенных, в первую очередь,
 | 
				
			||||||
 | 
					в пространстве имен `yii\validators`. Вместо того, чтобы использовать длинные имена классов валидаторов,
 | 
				
			||||||
 | 
					вы можете использовать *псевдонимы*, чтобы указать на использование этих валидаторов.
 | 
				
			||||||
 | 
					Например, вы можете использовать псевдоним `required`, чтобы сослаться на класс [[yii\validators\RequiredValidator]]:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					public function rules()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return [
 | 
				
			||||||
 | 
					        [['email', 'password'], 'required'],
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Все поддерживаемые псевдонимы валидаторов можно увидеть в свойстве [[yii\validators\Validator::builtInValidators]].
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Ниже мы опишем основные способы использования и свойства всех встроенных валидаторов.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\validators\BooleanValidator|boolean]] <a name="boolean"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    // Проверяет 'selected' на равенство 0 или 1, без учета типа данных
 | 
				
			||||||
 | 
					    ['selected', 'boolean'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Проверяет, что "deleted" - это тип данных boolean и содержит true или false
 | 
				
			||||||
 | 
					    ['deleted', 'boolean', 'trueValue' => true, 'falseValue' => false, 'strict' => true],
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Этот валидатор проверяет, что второе значение является *boolean*.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `trueValue`: значение, соответствующее *true*. По умолчанию - `'1'`.
 | 
				
			||||||
 | 
					- `falseValue`: значение, соответствующее *false*. По умолчанию - `'0'`.
 | 
				
			||||||
 | 
					- `strict`: должна ли проверка учитывать соответствие типов данных `trueValue` или `falseValue`. По умолчанию - `false`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> Примечание: Из-за того, что как правило данные, полученные из HTML-форм, представляются в виде строки, обычно вам стоит
 | 
				
			||||||
 | 
					оставить свойство [[yii\validators\BooleanValidator::strict|strict]] равным false.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\captcha\CaptchaValidator|captcha]] <a name="captcha"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    ['verificationCode', 'captcha'],
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					Этот валидатор обычно используется вместе с [[yii\captcha\CaptchaAction]] и [[yii\captcha\Captcha]], чтобы
 | 
				
			||||||
 | 
					убедиться, что данные в инпуте соответствуют верификационному коду, отображенному с помощью виджета
 | 
				
			||||||
 | 
					[[yii\captcha\Captcha|CAPTCHA]].
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `caseSensitive`: необходимо ли учитывать чувствительность к регистру при сравнении. По умолчанию - false.
 | 
				
			||||||
 | 
					- `captchaAction`: [маршрут](structure-controllers.md#routes), соответствующий
 | 
				
			||||||
 | 
					  [[yii\captcha\CaptchaAction|CAPTCHA action]], который рендерит изображение с *CAPTCHA*. По умолчанию - `'site/captcha'`.
 | 
				
			||||||
 | 
					- `skipOnEmpty`: может ли валидация быть пропущена, если *input* пустой. По умолчанию - false,
 | 
				
			||||||
 | 
					  что означает, что *input* обязателен.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\validators\CompareValidator|compare]] <a name="compare"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    // проверяет, является ли значение атрибута "password" таким же, как "password_repeat"
 | 
				
			||||||
 | 
					    ['password', 'compare'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // проверяет, что возраст больше или равен 30
 | 
				
			||||||
 | 
					    ['age', 'compare', 'compareValue' => 30, 'operator' => '>='],
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Этот валидатор сравнивает значение указанного атрибута с другим, чтобы удостовериться, что их отношение
 | 
				
			||||||
 | 
					соответствует описанному в свойстве `operator`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `compareAttribute`: имя атрибута, с которым нужно сравнить значение. Когда валидатор используется
 | 
				
			||||||
 | 
					  для проверки атрибута, значением по умолчанию для этого свойства будет имя этого же атрибута
 | 
				
			||||||
 | 
					  с суффиксом `_repeat`. Например, если проверяющийся атрибут - `password`,
 | 
				
			||||||
 | 
					  то значение свойства по умолчанию будет `password_repeat`.
 | 
				
			||||||
 | 
					- `compareValue`: постоянное значение, с которым будут сравниваться входящие данные. Когда одновременно указаны
 | 
				
			||||||
 | 
					   это свойство и `compareAttribute`, это свойство получит приоритет.
 | 
				
			||||||
 | 
					- `operator`: оператор сравнения. По умолчанию `==`, что означает проверку на эквивалентность входящих данных и в
 | 
				
			||||||
 | 
					  `compareAttribute`, и в `compareValue`. Поддерживаются следующие операторы:
 | 
				
			||||||
 | 
					     * `==`: проверяет два значения на эквивалентность. Сравнение не учитывает тип данных.
 | 
				
			||||||
 | 
					     * `===`: проверяет два значения на эквивалентность. Сравнение строгое и учитывает тип данных.
 | 
				
			||||||
 | 
					     * `!=`: проверяет, что два значения не эквивалентны. Сравнение не учитывает тип данных.
 | 
				
			||||||
 | 
					     * `!==`: проверяет, что два значения не эквивалентны. Сравнение строгое и учитывает тип данных.
 | 
				
			||||||
 | 
					     * `>`: проверяет, что валидируемое значение больше, чем то, с которым происходит сравнение.
 | 
				
			||||||
 | 
					     * `>=`: проверяет, что валидируемое значение больше или равно тому, с которым происходит сравнение.
 | 
				
			||||||
 | 
					     * `<`: проверяет, что валидируемое значение меньше, чем то, с которым происходит сравнение.
 | 
				
			||||||
 | 
					     * `<=`: проверяет, что валидируемое значение меньше или равно тому, с которым происходит сравнение.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\validators\DateValidator|date]] <a name="date"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    [['from', 'to'], 'date'],
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					Этот валидатор проверяет соответствие входящих данных форматам *date*, *time* или *datetime*.
 | 
				
			||||||
 | 
					Опционально, он может конвертировать входящее значение в UNIX timestamp и сохранить в атрибуте,
 | 
				
			||||||
 | 
					описанном здесь: [[yii\validators\DateValidator::timestampAttribute|timestampAttribute]].
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `format`: формат даты/времени, согласно которому должна быть сделана проверка. Чтобы узнать больше о формате
 | 
				
			||||||
 | 
					  строки, пожалуйста, посмотрите [руководство PHP по date_create_from_format()](http://www.php.net/manual/ru/datetime.createfromformat.php)
 | 
				
			||||||
 | 
					  Значением по умолчанию является `'Y-m-d'`.
 | 
				
			||||||
 | 
					- `timestampAttribute`: имя атрибута, которому этот валидатор может передать UNIX timestamp, конвентированный
 | 
				
			||||||
 | 
					  из строки даты/времени.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\validators\DefaultValueValidator|default]] <a name="default"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    // установить null для "age" в качестве значения по умолчанию
 | 
				
			||||||
 | 
					    ['age', 'default', 'value' => null],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // установить "USA" в качестве значения по умолчанию для "country"
 | 
				
			||||||
 | 
					    ['country', 'default', 'value' => 'USA'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // установить в "from" и "to" дату 3 дня и 6 дней от сегодняшней, если они пустые
 | 
				
			||||||
 | 
					    [['from', 'to'], 'default', 'value' => function ($model, $attribute) {
 | 
				
			||||||
 | 
					        return date('Y-m-d', strtotime($attribute === 'to' ? '+3 days' : '+6 days'));
 | 
				
			||||||
 | 
					    }],
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Этот валидатор не проверяет данные. Вместо этого он присваивает значения по умолчанию проходящим проверку
 | 
				
			||||||
 | 
					атрибутам, если они пусты.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `value`: значение по умолчанию или функция обратного вызова, которая возвращает значение по умолчанию,
 | 
				
			||||||
 | 
					  которое будет присвоено проверяемому атрибуту, если он пустой. Функция обратного вызова должна выглядеть так:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					function foo($model, $attribute) {
 | 
				
			||||||
 | 
					    // ... вычисление $value ...
 | 
				
			||||||
 | 
					    return $value;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> Информация: Как определить, является значение пустым или нет, более подробно описано в отдельной статье
 | 
				
			||||||
 | 
					  в секции [Пустые значения](input-validation.md#handling-empty-inputs).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\validators\NumberValidator|double]] <a name="double"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    // проверяет, является ли "salary" числом типа double
 | 
				
			||||||
 | 
					    ['salary', 'double'],
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Этот валидатор проверяет, что входящее значение является корректным *double* числом. Он идентичен
 | 
				
			||||||
 | 
					валидатору [number](#number). (Прим. пер.: корректным float числом).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `max`: верхний лимит (включительно) для значений. Если не установлен, значит, валидатор не будет проверять верхний лимит.
 | 
				
			||||||
 | 
					- `min`: Нижний лимит (включительно) для значений. Если не установлен, валидатор не будет проверять нижний лимит.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\validators\EmailValidator|email]] <a name="email"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    // проверяет, что "email" - это корректный email-адрес
 | 
				
			||||||
 | 
					    ['email', 'email'],
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					Валидатор проверяет, что значение входящих данных является корректным email-адресом.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `allowName`: можно ли передавать в атрибут имя (пример: `John Smith <john.smith@example.com>`). По умолчанию - false.
 | 
				
			||||||
 | 
					- `checkDNS`, проверяет, существует ли доменное имя для введенного адреса (и A, и MX запись).
 | 
				
			||||||
 | 
					  Учтите, что проверка может закончится неудачей, что может быть вызвано временными проблемами с DNS, даже если
 | 
				
			||||||
 | 
					  email-адрес корректен. По умоланию - false.
 | 
				
			||||||
 | 
					- `enableIDN`, нужно ли учитывать IDN (многоязычные доменные имена). По умолчанию - false. Учтите, что для использования
 | 
				
			||||||
 | 
					  IDN-валидации вам нужно установить и включить PHP расширение `intl`, иначе будет выброшено исключение.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\validators\ExistValidator|exist]] <a name="exist"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    // a1 должно существовать в столбце, который представляется атрибутом "a1"
 | 
				
			||||||
 | 
					    ['a1', 'exist'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // a1 должно существовать, но его значение будет использовать a2 для проверки существования
 | 
				
			||||||
 | 
					    ['a1', 'exist', 'targetAttribute' => 'a2'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // и a1, и a2 должны существовать, в противном случае оба атрибута будут возвращать ошибку
 | 
				
			||||||
 | 
					    [['a1', 'a2'], 'exist', 'targetAttribute' => ['a1', 'a2']],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // и a1, и a2 должны существовать, но только атрибут a1 будет возвращать ошибку
 | 
				
			||||||
 | 
					    ['a1', 'exist', 'targetAttribute' => ['a1', 'a2']],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // a1 требует проверки существования a2 и a3 (используя значение a1)
 | 
				
			||||||
 | 
					    ['a1', 'exist', 'targetAttribute' => ['a2', 'a1' => 'a3']],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // a1 должен существовать. Если a1 - массив, то каждый его элемент должен существовать
 | 
				
			||||||
 | 
					    ['a1', 'exist', 'allowArray' => true],
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Этот валидатор ищет входящие данные в столбце таблицы. Он работает только с атрибутами
 | 
				
			||||||
 | 
					модели [Active Record](db-active-record.md). Он поддерживает проверку и одного столбца, и нескольких.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `targetClass`: имя класса [Active Record](db-active-record.md), который должен быть использован для проверки
 | 
				
			||||||
 | 
					  входящего значения. Если не установлен, будет использован класс текущей модели.
 | 
				
			||||||
 | 
					- `targetAttribute`: имя атрибута в `targetClass` который должен быть использован для проверки существования
 | 
				
			||||||
 | 
					  входящего значения. Если не установлен, будет использовано имя атрибута, который проверяется в данный момент.
 | 
				
			||||||
 | 
					  Вы можете использовать массив для валидации нескольких столбцов одновременно. Значения массива являются атрибутами,
 | 
				
			||||||
 | 
					  которые будут использованы для проверки существования, тогда как ключи массива будут являться атрибутами, чьи значения
 | 
				
			||||||
 | 
					  будут проверены. Если ключ и значения одинаковы, вы можете указать только значение.
 | 
				
			||||||
 | 
					- `filter`: дополнительный фильтр, который будет добавлен к запросу в базу данных для проверки на существование значения.
 | 
				
			||||||
 | 
					  Это может быть строка или массив, представляющие дополнительные условия в запросе (подробнее о формате
 | 
				
			||||||
 | 
					  значений запроса: [[yii\db\Query::where()]]), или анонимная функция с сигнатурой `function ($query)`,
 | 
				
			||||||
 | 
					  где `$query` - это [[yii\db\Query|Query]] объект, который вы можете модифицировать в функции.
 | 
				
			||||||
 | 
					- `allowArray`: разрешать ли значению быть массивом. По умолчанию - false. Если свойство установлено в true
 | 
				
			||||||
 | 
					  и тип входящих данных - массив, тогда каждый его элемент должен существовать в соответствующем столбце таблицы.
 | 
				
			||||||
 | 
					  Помните, что это свойство не может быть установлено в true, если вы валидируете несколько столбцов, передавая
 | 
				
			||||||
 | 
					  их в `targetAttribute` как массив.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\validators\FileValidator|file]] <a name="file"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    // проверяет, что "primaryImage" - это загруженное изображение в формате PNG, JPG или GIF
 | 
				
			||||||
 | 
					    // размер файла должен быть меньше 1MB
 | 
				
			||||||
 | 
					    ['primaryImage', 'file', 'extensions' => ['png', 'jpg', 'gif'], 'maxSize' => 1024*1024*1024],
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Этот валидатор проверяет, что input является корректным загруженным файлом.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `extensions`: список имен расширений, которые допустимы для загрузки. Это также может быть или массив, или
 | 
				
			||||||
 | 
					  строка, содержащая имена файловых расширений, разделенных пробелом или запятой (пр.: "gif, jpg").
 | 
				
			||||||
 | 
					  Имя расширения не чувствительно к регистру. По умолчанию - null, что значит, что все имена файловых расширений
 | 
				
			||||||
 | 
					  допустимы.
 | 
				
			||||||
 | 
					- `mimeTypes`: список MIME-типов которые допустимы для загрузки. Это может быть или массив, или строка,
 | 
				
			||||||
 | 
					  содержащая MIME-типы файлов, разделенные пробелом или запятой (пример: "image/jpeg, image/png").
 | 
				
			||||||
 | 
					  Имена mime-типов не чувствительны к регистру. По умолачанию - null, что значит, что допустимы все MIME-типы.
 | 
				
			||||||
 | 
					- `minSize`: минимальный размер файла в байтах, разрешенный для загрузки. По умолчанию - null, что значит, что нет
 | 
				
			||||||
 | 
					  минимального лимита.
 | 
				
			||||||
 | 
					- `maxSize`: максимальный размер файла в байтах, разрешенный для загрузки. По умолчанию - null, что значит, что нет
 | 
				
			||||||
 | 
					  максимального лимита.
 | 
				
			||||||
 | 
					- `maxFiles`: максимальное количество файлов, которое может быть передано в атрибут. По умолчанию 1, что значит, что
 | 
				
			||||||
 | 
					  input должен быть файлом в единственном экземпляре. Если больше, чем 1, то атрибут должен быть массивом,
 | 
				
			||||||
 | 
					  состоящим из не более, чем `maxFiles` загруженных файлов.
 | 
				
			||||||
 | 
					- `checkExtensionByMimeType`: нужно ли проверять расширение файла исходя из его MIME-типа. Если они не соответствуют
 | 
				
			||||||
 | 
					  друг другу, то файл будет считаться некорректным. По умолчанию - true, то есть проверка будет произведена.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`FileValidator` используется вместе с [[yii\web\UploadedFile]]. Пожалуйста, посмотрите раздел
 | 
				
			||||||
 | 
					[Загрузка файлов](input-file-upload.md) для более полного понимания загрузки и проверки файлов.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\validators\FilterValidator|filter]] <a name="filter"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    // обрезает пробелы вокруг "username" и "email"
 | 
				
			||||||
 | 
					    [['username', 'email'], 'filter', 'filter' => 'trim', 'skipOnArray' => true],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // нормализует значение "phone"
 | 
				
			||||||
 | 
					    ['phone', 'filter', 'filter' => function ($value) {
 | 
				
			||||||
 | 
					        // нормализация значения происходит тут
 | 
				
			||||||
 | 
					        return $value;
 | 
				
			||||||
 | 
					    }],
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Этот валидатор не проверяет данные. Вместо этого он применяет указанный фильтр к входящему значению и
 | 
				
			||||||
 | 
					присваивает результат применения фильтра атрибуту.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `filter`: PHP-callback, осуществляющий фильтрацию. Это может быть глобальная php функция, анонимная функция
 | 
				
			||||||
 | 
					  и т.д. Функция должна выглядеть как `function ($value) { return $newValue; }`. Это свойство обязательно должно
 | 
				
			||||||
 | 
					  быть установлено.
 | 
				
			||||||
 | 
					- `skipOnArray`: нужно ли пропускать валидацию, если входящим значением является массив. По умолчанию - false.
 | 
				
			||||||
 | 
					  Помните, что если фильтр не может принимать массив, вы должны установить это значение в true. Иначе могут
 | 
				
			||||||
 | 
					  произойти различные ошибки PHP.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> Трюк: Если вы хотите удалить пробелы вокруг значений атрибута, вы можете использовать валидатор [trim](#trim).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\validators\ImageValidator|image]] <a name="image"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    // проверяет, что "primaryImage" - это валидное изображение с указанными размерами
 | 
				
			||||||
 | 
					    ['primaryImage', 'image', 'extensions' => 'png, jpg',
 | 
				
			||||||
 | 
					        'minWidth' => 100, 'maxWidth' => 1000,
 | 
				
			||||||
 | 
					        'minHeight' => 100, 'maxHeight' => 1000,
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Этот валидатор проверяет, что входящие данные являются корректным файлом изображения. Он расширяет [file](#file)
 | 
				
			||||||
 | 
					валидатор и наследует все его свойства. Кроме того, он поддерживает следующие дополнительные свойства, специфичные
 | 
				
			||||||
 | 
					для валидации изображений:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `minWidth`: минимальныя ширина изображения. По умолчанию null, что значит, что нет нижнего лимита.
 | 
				
			||||||
 | 
					- `maxWidth`: максимальная ширина изображения. По умолчанию null, что значит, что нет верхнего лимита.
 | 
				
			||||||
 | 
					- `minHeight`: минимальныя высота изображения. По умолчанию null, что значит, что нет нижнего лимита.
 | 
				
			||||||
 | 
					- `maxHeight`: максимальная высота изображения. По умолчанию null, что значит, что нет верхнего лимита.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\validators\RangeValidator|in]] <a name="in"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    // проверяет, что значение "level" равно 1, 2 или 3
 | 
				
			||||||
 | 
					    ['level', 'in', 'range' => [1, 2, 3]],
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Этот валидатор проверяет, что вхоящее значение соответствует одному из значений, указанных в `range`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `range`: список значений, с которыми будет сравниваться входящее значение.
 | 
				
			||||||
 | 
					- `strict`: должно ли сравнение входящего значения со списком значений быть строгим (учитывать тип данных).
 | 
				
			||||||
 | 
					  По умолчанию false.
 | 
				
			||||||
 | 
					- `not`: должен ли результат проверки быть инвертирован. По умолчанию - false. Если свойство установлено в true,
 | 
				
			||||||
 | 
					  валидатор проверяет, что входящее значение НЕ соответсвует ни одному из значений, указанных в `range`.
 | 
				
			||||||
 | 
					- `allowArray`: устанавливает, допустимо ли использовать массив в качестве входных данных. Если установлено в true
 | 
				
			||||||
 | 
					  и входящие данные являются массивом, для каждого элемента входящего массива должно быть найдено соответствие в
 | 
				
			||||||
 | 
					  `range`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\validators\NumberValidator|integer]] <a name="integer"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    // проверяет "age" на то, что это integer значение
 | 
				
			||||||
 | 
					    ['age', 'integer'],
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Проверяет, что входящее значение является integer значением.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `max`: верхний лимит (включительно) для числа. Если не установлено, валидатор не будет проверять верхний лимит.
 | 
				
			||||||
 | 
					- `min`: нижний лимит (включительно) для числа. Если не установлено, валидатор не будет проверять нижний лимит.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\validators\RegularExpressionValidator|match]] <a name="match"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    // проверяет, что "username" начинается с буквы и содержит только буквенные символы,
 | 
				
			||||||
 | 
					    // числовые символы и знак подчеркивания
 | 
				
			||||||
 | 
					    ['username', 'match', 'pattern' => '/^[a-z]\w*$/i']
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Этот валидатор проверяет, что входящее значение совпадает с указанным регулярным выражением.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `pattern`: регулярное выражение, с которым должно совпадать входящее значение. Это свойство должно быть установлено,
 | 
				
			||||||
 | 
					  иначе будет выброшено исключение.
 | 
				
			||||||
 | 
					- `not`: инвертирует регулярное выражение. По умолчанию false, что значит, что валидация будет успешна,
 | 
				
			||||||
 | 
					   только если входящее значение совпадают с шаблоном. Если установлено в true, валидация будет успешна,
 | 
				
			||||||
 | 
					   только если входящее значение НЕ совпадает с шаблоном.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\validators\NumberValidator|number]] <a name="number"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    // проверяет, является ли "salary" числом
 | 
				
			||||||
 | 
					    ['salary', 'number'],
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Этот валидатор проверяет, являются ли входящие значения числовыми. Он эквивалентен валидатору [double](#double).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `max`: верхний лимит (включительно) для числа. Если не установлено, валидатор не будет проверять верхний лимит.
 | 
				
			||||||
 | 
					- `min`: нижний лимит (включительно) для числа. Если не установлено, валидатор не будет проверять нижний лимит.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\validators\RequiredValidator|required]] <a name="required"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    // проверяет, являются ли "username" и "password" не пустыми
 | 
				
			||||||
 | 
					    [['username', 'password'], 'required'],
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Этот валидатор проверяет, являются ли входящие значения не пустыми.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `requiredValue`: желаемое значение, которому должны соответствовать проверямые данные. Если не установлено,
 | 
				
			||||||
 | 
					  это значит, что данные должны быть не пусты.
 | 
				
			||||||
 | 
					- `strict`: учитывать или нет соответствие типу данных при валидации (строгое сравнение).
 | 
				
			||||||
 | 
					  Если `requiredValue` не установлено, а это свойство установлено в true, валидатор проверит, что входящее значение
 | 
				
			||||||
 | 
					  строго не соответствует null; если свойство установлено в false, валидатор будет проверять значение на пустоту с
 | 
				
			||||||
 | 
					  приведением типов.
 | 
				
			||||||
 | 
					  Если `requiredValue` установлено, сравнение между входящими данными и `requiredValue` будет также учитывать тип
 | 
				
			||||||
 | 
					  данных, если это свойство установлено в true.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> Информация: как определить, является ли значение пустым или нет, подробнее рассказывается
 | 
				
			||||||
 | 
					  в секции [Пустые значения](input-validation.md#handling-empty-inputs).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\validators\SafeValidator|safe]] <a name="safe"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    // обозначает "description" как safe атрибут
 | 
				
			||||||
 | 
					    ['description', 'safe'],
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Этот валидатор не проверяет данные. Вместо этого он указывает, что атрибут является
 | 
				
			||||||
 | 
					[безопасным атрибутом](structure-models.md#safe-attributes).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\validators\StringValidator|string]] <a name="string"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    // проверяет, что "username" это строка с длиной от 4 до 24 символов
 | 
				
			||||||
 | 
					    ['username', 'string', 'length' => [4, 24]],
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Этот валидатор проверяет, что входящее значение - это корректная строка с указанной длиной.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `length`: описывает длину для строки, проходящей валидацию. Может быть определен следующими
 | 
				
			||||||
 | 
					   способами:
 | 
				
			||||||
 | 
					     * числом: точная длина, которой должна соответствовать строка;
 | 
				
			||||||
 | 
					     * массив с одним элементом: минимальная длина входящей строки (напр.: `[8]`). Это перезапишет `min`.
 | 
				
			||||||
 | 
					     * массив с двумя элементами: минимальная и максимальная длина входящей строки (напр.: `[8, 128]`).
 | 
				
			||||||
 | 
					     Это перезапишет и `min`, и `max`.
 | 
				
			||||||
 | 
					- `min`: минимальная длина входящей строки. Если не установлено, то не будет ограничения на минимальную длину.
 | 
				
			||||||
 | 
					- `max`: максимальная длина входящей строки. Если не установлено, то не будет ограничения на максимальную длину.
 | 
				
			||||||
 | 
					- `encoding`: кодировка входящей строки. Если не установлено, будет использовано значение из
 | 
				
			||||||
 | 
					  [[yii\base\Application::charset|charset]], которое по умолчанию установлено в `UTF-8`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\validators\FilterValidator|trim]] <a name="trim"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    // обрезает пробелы вокруг "username" и "email"
 | 
				
			||||||
 | 
					    [['username', 'email'], 'trim'],
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Этот валидатор не производит проверки данных. Вместо этого он будет обрезать пробелы вокруг входящих данных.
 | 
				
			||||||
 | 
					Помните, что если входящие данные являются массивом, то они будут проигнорированы этим валидатором.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\validators\UniqueValidator|unique]] <a name="unique"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    // a1 должен быть уникальным в столбце, который представляет "a1" атрибут
 | 
				
			||||||
 | 
					    ['a1', 'unique'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // a1 должен быть уникальным, но для проверки на уникальность
 | 
				
			||||||
 | 
					    // будет использован столбец a2
 | 
				
			||||||
 | 
					    ['a1', 'unique', 'targetAttribute' => 'a2'],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // a1 и a2 вместе должны быть уникальны, и каждый из них
 | 
				
			||||||
 | 
					    // будет получать сообщения об ошибке
 | 
				
			||||||
 | 
					    [['a1', 'a2'], 'unique', 'targetAttribute' => ['a1', 'a2']],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // a1 и a2 вместе должны быть уникальны, но только a1 будет получать сообщение об ошибке
 | 
				
			||||||
 | 
					    ['a1', 'unique', 'targetAttribute' => ['a1', 'a2']],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // a1 должен быть уникальным, что устанавливается проверкой уникальности a2 и a3
 | 
				
			||||||
 | 
					    // (используя значение a1)
 | 
				
			||||||
 | 
					    ['a1', 'unique', 'targetAttribute' => ['a2', 'a1' => 'a3']],
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Этот валидатор проверяет входящие данные на уникальность в столбце таблицы. Он работает только с
 | 
				
			||||||
 | 
					атрибутами модели [Active Record](db-active-record.md). Он поддерживает проверку либо одного столбца,
 | 
				
			||||||
 | 
					либо нескольких.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `targetClass`: имя класса [Active Record](db-active-record.md), который должен быть использован
 | 
				
			||||||
 | 
					  для проверки значения во входящих данных. Если не установлен, будет использован класс модели, которая
 | 
				
			||||||
 | 
					  в данный момент проходит проверку.
 | 
				
			||||||
 | 
					- `targetAttribute`: имя атрибута в `targetClass`, который должен быть использован для проверки на
 | 
				
			||||||
 | 
					  уникальность входящего значения. Если не установлено, будет использован атрибут, проверяемый
 | 
				
			||||||
 | 
					  в данный момент.
 | 
				
			||||||
 | 
					  Вы можете использовать массив для проверки нескольких столбцов таблицы на уникальность. Значения массива -
 | 
				
			||||||
 | 
					  это атрибуты, которые будут использованы для валидации, а ключи массива - это атрибуты, которые предоставляют
 | 
				
			||||||
 | 
					  данные для валидации. Если ключ и значение одинаковые, вы можете указать только значение.
 | 
				
			||||||
 | 
					- `filter`: дополнительный фильтр, который можно присоединить к запросу в БД, чтобы использовать его при
 | 
				
			||||||
 | 
					  проверке значения на уникальность. Это может быть строка или массив, представляющие дополнительные условия для запроса
 | 
				
			||||||
 | 
					  (см. [[yii\db\Query::where()]] о формате условий в запросе), или анонимная функция вида `function ($query)`,
 | 
				
			||||||
 | 
					  где `$query` это объект [[yii\db\Query|Query]], который вы можете изменить в функции.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## [[yii\validators\UrlValidator|url]] <a name="url"></a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```php
 | 
				
			||||||
 | 
					[
 | 
				
			||||||
 | 
					    // Проверяет, что "website" является корректным URL. Добавляет http:// к атрибуту "website".
 | 
				
			||||||
 | 
					    // если у него нет URI схемы
 | 
				
			||||||
 | 
					    ['website', 'url', 'defaultScheme' => 'http'],
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Этот валидатор проверяет, что входящее значение является корректным URL.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- `validSchemes`: массив с указанием на URI-схему, которая должна считаться корректной. По умолчанию
 | 
				
			||||||
 | 
					  `['http', 'https']`, что означает, что и `http`, и `https` URI будут считаться корректными.
 | 
				
			||||||
 | 
					- `defaultScheme`: схема URI, которая будет присоединена к входящим данным, если в них отсутствует URI-схема.
 | 
				
			||||||
 | 
					  По умолчанию null, что значит, что входящие данные не будут изменены.
 | 
				
			||||||
 | 
					- `enableIDN`: должна ли валидация учитывать IDN (интернационализованные доменные имена).
 | 
				
			||||||
 | 
					  По умолчанию - false. Учтите, что для того, чтобы IDN валидация работала корректно, вы должны установить `intl`
 | 
				
			||||||
 | 
					  PHP расширение, иначе будет выброшено исключение.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Reference in New Issue
	
	Block a user