Yii2 проверить существует ли файл
Yii предоставляет встроенный набор часто используемых валидаторов, расположенных, в первую очередь, в пространстве имен yii\validators . Вместо того, чтобы использовать длинные имена классов валидаторов, вы можете использовать псевдонимы, чтобы указать на использование этих валидаторов. Например, вы можете использовать псевдоним required , чтобы сослаться на класс [[yii\validators\RequiredValidator]]:
Все поддерживаемые псевдонимы валидаторов можно увидеть в свойстве [[yii\validators\Validator::builtInValidators]].
Ниже мы опишем основные способы использования и свойства всех встроенных валидаторов.
[[yii\validators\RequiredValidator|required]]
Этот валидатор проверяет, являются ли входящие значения не пустыми.
- requiredValue : желаемое значение, которому должны соответствовать проверяемые данные. Если не установлено, это значит, что данные должны быть не пусты.
- strict : учитывать или нет соответствие типу данных при валидации (строгое сравнение). Если requiredValue не установлено, а это свойство установлено в true, валидатор проверит, что входящее значение строго не соответствует null; если свойство установлено в false, валидатор будет проверять значение на пустоту с приведением типов. Если requiredValue установлено, сравнение между входящими данными и requiredValue будет также учитывать тип данных, если это свойство установлено в true.
Info: как определить, является ли значение пустым или нет, подробнее рассказывается в секции Пустые значения.
[[yii\validators\UniqueValidator|unique]]
Этот валидатор проверяет входящие данные на уникальность в столбце таблицы. Он работает только с атрибутами модели Active Record. Он поддерживает проверку либо одного столбца, либо нескольких.
Do not use BaseFileHelper. Use yii\helpers\FileHelper instead.
[[yii\validators\RegularExpressionValidator|match]]
Этот валидатор проверяет, что входящее значение совпадает с указанным регулярным выражением.
- pattern : регулярное выражение, с которым должно совпадать входящее значение. Это свойство должно быть установлено, иначе будет выброшено исключение.
- not : инвертирует регулярное выражение. По умолчанию false, что значит, что валидация будет успешна, только если входящее значение совпадают с шаблоном. Если установлено в true, валидация будет успешна, только если входящее значение НЕ совпадает с шаблоном.
Date / Datetime/ Time / валидация даты
[[yii\validators\RangeValidator|in]]
Этот валидатор проверяет, что входящее значение соответствует одному из значений, указанных в range .
- range : список значений, с которыми будет сравниваться входящее значение.
- strict : должно ли сравнение входящего значения со списком значений быть строгим (учитывать тип данных). По умолчанию false.
- not : должен ли результат проверки быть инвертирован. По умолчанию - false. Если свойство установлено в true, валидатор проверяет, что входящее значение НЕ соответствует ни одному из значений, указанных в range .
- allowArray : устанавливает, допустимо ли использовать массив в качестве входных данных. Если установлено в true и входящие данные являются массивом, для каждого элемента входящего массива должно быть найдено соответствие в range .
[[yii\validators\ImageValidator|image]]
Этот валидатор проверяет, что входящие данные являются корректным файлом изображения. Он расширяет file валидатор и наследует все его свойства. Кроме того, он поддерживает следующие дополнительные свойства, специфичные для валидации изображений:
- minWidth : минимальная ширина изображения. По умолчанию null, что значит, что нет нижнего лимита.
- maxWidth : максимальная ширина изображения. По умолчанию null, что значит, что нет верхнего лимита.
- minHeight : минимальная высота изображения. По умолчанию null, что значит, что нет нижнего лимита.
- maxHeight : максимальная высота изображения. По умолчанию null, что значит, что нет верхнего лимита.
[[yii\validators\FileValidator|file]]
Этот валидатор проверяет, что input является корректным загруженным файлом.
- extensions : список имен расширений, которые допустимы для загрузки. Это также может быть или массив, или строка, содержащая имена файловых расширений, разделенных пробелом или запятой (пр.: "gif, jpg"). Имя расширения не чувствительно к регистру. По умолчанию - null, что значит, что все имена файловых расширений допустимы.
- mimeTypes : список MIME-типов, которые допустимы для загрузки. Это может быть или массив, или строка, содержащая MIME-типы файлов, разделенные пробелом или запятой (пример: "image/jpeg, image/png"). В именах MIME-типов допустимо использовать символ * для выбора группы mime-типов. Например, image/* разрешит все типы, которы начинаются с image/ (пример: image/jpeg , image/png ). Имена MIME-типов не чувствительны к регистру. По умолчанию - null, что значит, что допустимы все MIME-типы. Более детальную информацию можно найти в списке MIME-типов.
- minSize : минимальный размер файла в байтах, разрешенный для загрузки. По умолчанию - null, что значит, что нет минимального лимита.
- maxSize : максимальный размер файла в байтах, разрешенный для загрузки. По умолчанию - null, что значит, что нет максимального лимита.
- maxFiles : максимальное количество файлов, которое может быть передано в атрибут. По умолчанию 1, что значит, что input должен быть файлом в единственном экземпляре. Если больше, чем 1, то атрибут должен быть массивом, состоящим из не более, чем maxFiles загруженных файлов.
- checkExtensionByMimeType : нужно ли проверять расширение файла исходя из его MIME-типа. Если они не соответствуют друг другу, то файл будет считаться некорректным. По умолчанию - true, то есть проверка будет произведена.
FileValidator используется вместе с [[yii\web\UploadedFile]]. Пожалуйста, посмотрите раздел Загрузка файлов для более полного понимания загрузки и проверки файлов.
[[yii\validators\NumberValidator|number]]
Этот валидатор проверяет, являются ли входящие значения числовыми. Он эквивалентен валидатору double.
- max : верхний лимит (включительно) для числа. Если не установлено, валидатор не будет проверять верхний лимит.
- min : нижний лимит (включительно) для числа. Если не установлено, валидатор не будет проверять нижний лимит.
[[yii\validators\ExistValidator|exist]]
Этот валидатор ищет входящие данные в столбце таблицы. Он работает только с атрибутами модели Active Record. Он поддерживает проверку и одного столбца, и нескольких.
- targetClass : имя класса Active Record, который должен быть использован для проверки входящего значения. Если не установлен, будет использован класс текущей модели.
- targetAttribute : имя атрибута в targetClass который должен быть использован для проверки существования входящего значения. Если не установлен, будет использовано имя атрибута, который проверяется в данный момент. Вы можете использовать массив для валидации нескольких столбцов одновременно. Значения массива являются атрибутами, которые будут использованы для проверки существования, тогда как ключи массива будут являться атрибутами, чьи значения будут проверены. Если ключ и значения одинаковы, вы можете указать только значение.
- filter : дополнительный фильтр, который будет добавлен к запросу в базу данных для проверки на существование значения. Это может быть строка или массив, представляющие дополнительные условия в запросе (подробнее о формате значений запроса: [[yii\db\Query::where()]]), или анонимная функция с сигнатурой function ($query) , где $query - это [[yii\db\Query|Query]] объект, который вы можете модифицировать в функции.
- allowArray : разрешать ли значению быть массивом. По умолчанию - false. Если свойство установлено в true и тип входящих данных - массив, тогда каждый его элемент должен существовать в соответствующем столбце таблицы. Помните, что это свойство не может быть установлено в true, если вы валидируете несколько столбцов, передавая их в targetAttribute как массив.
In / проверка, что значение входит в список допустимых
Диапазон может быть задан с помощью параметра range. Если параметр not установлен в true, то валидатор проверяет, что значение атрибута НЕ относится к указанному диапазону. Параметры:
Public Methods
Method | Description | Defined By |
---|---|---|
changeOwnership() | Changes the Unix user and/or group ownership of a file or directory, and optionally the mode. | yii\helpers\BaseFileHelper |
copyDirectory() | Copies a whole directory as another one. | yii\helpers\BaseFileHelper |
createDirectory() | Creates a new directory. | yii\helpers\BaseFileHelper |
filterPath() | Checks if the given file path satisfies the filtering options. | yii\helpers\BaseFileHelper |
findDirectories() | Returns the directories found under the specified directory and subdirectories. | yii\helpers\BaseFileHelper |
findFiles() | Returns the files found under the specified directory and subdirectories. | yii\helpers\BaseFileHelper |
getExtensionsByMimeType() | Determines the extensions by given MIME type. | yii\helpers\BaseFileHelper |
getMimeType() | Determines the MIME type of the specified file. | yii\helpers\BaseFileHelper |
getMimeTypeByExtension() | Determines the MIME type based on the extension name of the specified file. | yii\helpers\BaseFileHelper |
localize() | Returns the localized version of a specified file. | yii\helpers\BaseFileHelper |
normalizePath() | Normalizes a file/directory path. | yii\helpers\BaseFileHelper |
removeDirectory() | Removes a directory (and all its content) recursively. | yii\helpers\BaseFileHelper |
unlink() | Removes a file or symlink in a cross-platform way | yii\helpers\BaseFileHelper |
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$mimeAliasesFile | string | The path (or alias) of a PHP file containing MIME aliases. | yii\helpers\BaseFileHelper |
$mimeMagicFile | string | The path (or alias) of a PHP file containing MIME type information. | yii\helpers\BaseFileHelper |
Filter / конвертация значений
Еще один валидатор, который не валидатор, а обработчик данных. Он конвертирует значения в соответствии с установленной callback-функцией. Параметры:
- filter: callback-функция, имеющая в качестве параметра текущее значение атрибута и возвращающая измененное значение;
- skipOnArray: пропускать ли обработку, если в качестве значения получен массив. По умолчанию false;
- skipOnEmpty: пропускать ли проверку, если поле не заполнено. По умолчанию false.
Method Details
Changes the Unix user and/or group ownership of a file or directory, and optionally the mode.
Note: This function will not work on remote files as the file to be examined must be accessible via the server's filesystem. Note: On Windows, this function fails silently when applied on a regular file.
The path to the file or directory.
The user and/or group ownership for the file or directory. When $ownership is a string, the format is 'user:group' where both are optional. E.g. 'user' or 'user:' will only change the user, ':group' will only change the group, 'user:group' will change both. When $owners is an index array the format is [0 => user, 1 => group], e.g. [$myUser, $myGroup] . It is also possible to pass an associative array, e.g. ['user' => $myUser, 'group' => $myGroup]. In case $owners is an integer it will be used as user id. If null , an empty array or an empty string is passed, the ownership will not be changed.
The permission to be set for the file or directory. If null is passed, the mode will not be changed.
Copies a whole directory as another one.
The files and sub-directories will also be copied over.
The source directory
The destination directory
- dirMode: integer, the permission to be set for newly copied directories. Defaults to 0775.
- fileMode: integer, the permission to be set for newly copied files. Defaults to the current environment setting.
filter: callback, a PHP callback that is called for each directory or file. The signature of the callback should be: function ($path) , where $path refers the full path to be filtered. The callback can return one of the following values:
- true: the directory or file will be copied (the "only" and "except" options will be ignored)
- false: the directory or file will NOT be copied (the "only" and "except" options will be ignored)
- null: the "only" and "except" options will determine whether the directory or file should be copied
if unable to open directory
Creates a new directory.
This method is similar to the PHP mkdir() function except that it uses chmod() to set the permission of the created directory in order to avoid the impact of the umask setting.
Path of the directory to be created.
The permission to be set for the created directory.
Whether to create parent directories if they do not exist.
Whether the directory is created successfully
if the directory could not be created (i.e. php error due to parallel changes)
Checks if the given file path satisfies the filtering options.
The path of the file or directory to be checked
The filtering options. See findFiles() for explanations of the supported options.
Whether the file or directory satisfies the filtering options.
Returns the directories found under the specified directory and subdirectories.
The directory under which the files will be looked for.
filter : callback, a PHP callback that is called for each directory or file. The signature of the callback should be: function (string $path): bool , where $path refers the full path to be filtered. The callback can return one of the following values:
- true : the directory will be returned
- false : the directory will NOT be returned
recursive : boolean, whether the files under the subdirectories should also be looked for. Defaults to true . See findFiles() for more options.
Directories found under the directory, in no particular order. Ordering depends on the files system used.
if the dir is invalid.
Returns the files found under the specified directory and subdirectories.
The directory under which the files will be looked for.
filter : callback, a PHP callback that is called for each directory or file. The signature of the callback should be: function ($path) , where $path refers the full path to be filtered. The callback can return one of the following values:
- true : the directory or file will be returned (the only and except options will be ignored)
- false : the directory or file will NOT be returned (the only and except options will be ignored)
- null : the only and except options will determine whether the directory or file should be returned
Files found under the directory, in no particular order. Ordering depends on the files system used.
if the dir is invalid.
Determines the extensions by given MIME type.
This method will use a local map between extension names and MIME types.
The path (or alias) of the file that contains all available MIME type information. If this is not set, the file specified by $mimeMagicFile will be used.
The extensions corresponding to the specified MIME type
Determines the MIME type of the specified file.
This method will first try to determine the MIME type based on finfo_open. If the fileinfo extension is not installed, it will fall back to getMimeTypeByExtension() when $checkExtension is true.
Name of the optional magic database file (or alias), usually something like /path/to/magic.mime . This will be passed as the second parameter to finfo_open() when the fileinfo extension is installed. If the MIME type is being determined based via getMimeTypeByExtension() and this is null, it will use the file specified by $mimeMagicFile.
Whether to use the file extension to determine the MIME type in case finfo_open() cannot determine it.
The MIME type (e.g. text/plain ). Null is returned if the MIME type cannot be determined.
when the fileinfo PHP extension is not installed and $checkExtension is false .
Determines the MIME type based on the extension name of the specified file.
This method will use a local map between extension names and MIME types.
The path (or alias) of the file that contains all available MIME type information. If this is not set, the file specified by $mimeMagicFile will be used.
The MIME type. Null is returned if the MIME type cannot be determined.
Loads MIME aliases from the specified file.
The path (or alias) of the file that contains MIME type aliases. If this is not set, the file specified by $mimeAliasesFile will be used.
The mapping from file extensions to MIME types
Loads MIME types from the specified file.
The path (or alias) of the file that contains all available MIME type information. If this is not set, the file specified by $mimeMagicFile will be used.
The mapping from file extensions to MIME types
Returns the localized version of a specified file.
The searching is based on the specified language code. In particular, a file with the same name will be looked for under the subdirectory whose name is the same as the language code. For example, given the file "path/to/view.php" and language code "zh-CN", the localized file will be looked for as "path/to/zh-CN/view.php". If the file is not found, it will try a fallback with just a language code that is "zh" i.e. "path/to/zh/view.php". If it is not found as well the original file will be returned.
If the target and the source language codes are the same, the original file will be returned.
The original file
The target language that the file should be localized to. If not set, the value of yii\base\Application::$language will be used.
The language that the original file is in. If not set, the value of yii\base\Application::$sourceLanguage will be used.
The matching localized file, or the original file if the localized version is not found. If the target and the source language codes are the same, the original file will be returned.
Whether to check file type (extension) with mime-type. If extension produced by file mime-type check differs from uploaded file extension, the file will be considered as invalid.
A list of file name extensions that are allowed to be uploaded. This can be either an array or a string consisting of file extension names separated by space or comma (e.g. "gif, jpg"). Extension names are case-insensitive. Defaults to null, meaning all file name extensions are allowed.
See also $wrongExtension for the customized message for wrong file type.
The maximum file count the given attribute can hold. Defaults to 1, meaning single file upload. By defining a higher number, multiple uploads become possible. Setting it to 0 means there is no limit on the number of files that can be uploaded simultaneously.
Note: The maximum number of files allowed to be uploaded simultaneously is also limited with PHP directive max_file_uploads , which defaults to 20.
The maximum number of bytes required for the uploaded file. Defaults to null, meaning no limit. Note, the size limit is also affected by upload_max_filesize and post_max_size INI setting and the 'MAX_FILE_SIZE' hidden field value. See getSizeLimit() for details.
The error message used when a file is not uploaded correctly.
A list of file MIME types that are allowed to be uploaded. This can be either an array or a string consisting of file MIME types separated by space or comma (e.g. "text/plain, image/png"). The mask with the special character * can be used to match groups of mime types. For example image/* will pass all mime types, that begin with image/ (e.g. image/jpeg , image/png ). Mime type names are case-insensitive. Defaults to null, meaning all MIME types are allowed.
See also $wrongMimeType for the customized message for wrong MIME type.
The minimum file count the given attribute can hold. Defaults to 0. Higher value means at least that number of files should be uploaded.
See also $tooFew for the customized message when too few files are uploaded.
The minimum number of bytes required for the uploaded file. Defaults to null, meaning no limit.
See also $tooSmall for the customized message for a file that is too small.
The size limit for uploaded files.
The error message used when the uploaded file is too large. You may use the following tokens in the message:
- : the attribute name
- : the uploaded file name
- : the maximum size allowed (see getSizeLimit())
- : the maximum size formatted with Formatter::asShortSize()
The error message used if the count of multiple uploads less that minFiles. You may use the following tokens in the message:
The error message used if the count of multiple uploads exceeds limit. You may use the following tokens in the message:
The error message used when the uploaded file is too small. You may use the following tokens in the message:
- : the attribute name
- : the uploaded file name
- : the value of $minSize
- : the value of $minSize formatted with [[\yii\i18n\Formatter::asShortSize()|Formatter::asShortSize()]
The error message used when no file is uploaded. Note that this is the text of the validation error message. To make uploading files required, you have to set $skipOnEmpty to false .
The error message used when the uploaded file has an extension name that is not listed in $extensions. You may use the following tokens in the message:
- : the attribute name
- : the uploaded file name
- : the list of the allowed extensions.
The error message used when the file has an mime type that is not allowed by $mimeTypes property. You may use the following tokens in the message:
- : the attribute name
- : the uploaded file name
- : the value of $mimeTypes
[[yii\validators\CompareValidator|compare]]
Этот валидатор сравнивает значение указанного атрибута с другим, чтобы удостовериться, что их отношение соответствует описанному в свойстве operator .
- compareAttribute : имя атрибута, с которым нужно сравнить значение. Когда валидатор используется для проверки атрибута, значением по умолчанию для этого свойства будет имя этого же атрибута с суффиксом _repeat . Например, если проверяющийся атрибут - password , то значение свойства по умолчанию будет password_repeat .
- compareValue : постоянное значение, с которым будут сравниваться входящие данные. Когда одновременно указаны это свойство и compareAttribute , это свойство получит приоритет.
- operator : оператор сравнения. По умолчанию == , что означает проверку на эквивалентность входящих данных и в compareAttribute , и в compareValue . Поддерживаются следующие операторы:
- == : проверяет два значения на эквивалентность. Сравнение не учитывает тип данных.
- === : проверяет два значения на эквивалентность. Сравнение строгое и учитывает тип данных.
- != : проверяет, что два значения не эквивалентны. Сравнение не учитывает тип данных.
- !== : проверяет, что два значения не эквивалентны. Сравнение строгое и учитывает тип данных.
- > : проверяет, что валидируемое значение больше, чем то, с которым происходит сравнение.
- >= : проверяет, что валидируемое значение больше или равно тому, с которым происходит сравнение.
- < : проверяет, что валидируемое значение меньше, чем то, с которым происходит сравнение.
Double / Integer / Number / валидация чисел
[[yii\validators\EmailValidator|email]]
Валидатор проверяет, что значение входящих данных является корректным email-адресом.
- allowName : можно ли передавать в атрибут имя (пример: John Smith <[email protected]> ). По умолчанию - false.
- checkDNS , проверяет, существует ли доменное имя для введенного адреса (и A, и MX запись). Учтите, что проверка может закончится неудачей, что может быть вызвано временными проблемами с DNS, даже если email-адрес корректен. По умолчанию - false.
- enableIDN , нужно ли учитывать IDN (многоязычные доменные имена). По умолчанию - false. Учтите, что для использования IDN-валидации вам нужно установить и включить PHP расширение intl , иначе будет выброшено исключение.
File / валидация файлов
Method Details
Calls the named method which is not a class method.
This method will check if any attached behavior has the named method and will execute it if available.
Do not call this method directly as it is a PHP magic method that will be implicitly called when an unknown method is being invoked.
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents
Copy raw contents
Copy raw contents
Yii предоставляет встроенный набор часто используемых валидаторов, расположенных, в первую очередь, в пространстве имен yii\validators . Вместо того, чтобы использовать длинные имена классов валидаторов, вы можете использовать псевдонимы, чтобы указать на использование этих валидаторов. Например, вы можете использовать псевдоним required , чтобы сослаться на класс [[yii\validators\RequiredValidator]]:
Все поддерживаемые псевдонимы валидаторов можно увидеть в свойстве [[yii\validators\Validator::builtInValidators]].
Ниже мы опишем основные способы использования и свойства всех встроенных валидаторов.
Этот валидатор проверяет, что второе значение является boolean.
- trueValue : значение, соответствующее true. По умолчанию - '1' .
- falseValue : значение, соответствующее false. По умолчанию - '0' .
- strict : должна ли проверка учитывать соответствие типов данных trueValue или falseValue . По умолчанию - false .
Примечание: Из-за того, что как правило данные, полученные из HTML-форм, представляются в виде строки, обычно вам стоит оставить свойство [[yii\validators\BooleanValidator::strict|strict]] равным false.
Этот валидатор обычно используется вместе с [[yii\captcha\CaptchaAction]] и [[yii\captcha\Captcha]], чтобы убедиться, что данные в инпуте соответствуют верификационному коду, отображенному с помощью виджета [[yii\captcha\Captcha|CAPTCHA]].
- caseSensitive : необходимо ли учитывать чувствительность к регистру при сравнении. По умолчанию - false.
- captchaAction : маршрут, соответствующий [[yii\captcha\CaptchaAction|CAPTCHA action]], который рендерит изображение с CAPTCHA. По умолчанию - 'site/captcha' .
- skipOnEmpty : может ли валидация быть пропущена, если input пустой. По умолчанию - false, что означает, что input обязателен.
Этот валидатор сравнивает значение указанного атрибута с другим, чтобы удостовериться, что их отношение соответствует описанному в свойстве operator .
- compareAttribute : имя атрибута, с которым нужно сравнить значение. Когда валидатор используется для проверки атрибута, значением по умолчанию для этого свойства будет имя этого же атрибута с суффиксом _repeat . Например, если проверяющийся атрибут - password , то значение свойства по умолчанию будет password_repeat .
- compareValue : постоянное значение, с которым будут сравниваться входящие данные. Когда одновременно указаны это свойство и compareAttribute , это свойство получит приоритет.
- operator : оператор сравнения. По умолчанию == , что означает проверку на эквивалентность входящих данных и в compareAttribute , и в compareValue . Поддерживаются следующие операторы:
- == : проверяет два значения на эквивалентность. Сравнение не учитывает тип данных.
- === : проверяет два значения на эквивалентность. Сравнение строгое и учитывает тип данных.
- != : проверяет, что два значения не эквивалентны. Сравнение не учитывает тип данных.
- !== : проверяет, что два значения не эквивалентны. Сравнение строгое и учитывает тип данных.
- > : проверяет, что валидируемое значение больше, чем то, с которым происходит сравнение.
- >= : проверяет, что валидируемое значение больше или равно тому, с которым происходит сравнение.
- < : проверяет, что валидируемое значение меньше, чем то, с которым происходит сравнение.
Этот валидатор проверяет соответствие входящих данных форматам date, time или datetime. Опционально, он может конвертировать входящее значение в UNIX timestamp и сохранить в атрибуте, описанном здесь: [[yii\validators\DateValidator::timestampAttribute|timestampAttribute]].
- format : формат даты/времени, согласно которому должна быть сделана проверка. Чтобы узнать больше о формате строки, пожалуйста, посмотрите руководство PHP по date_create_from_format() Значением по умолчанию является 'Y-m-d' .
- timestampAttribute : имя атрибута, которому этот валидатор может передать UNIX timestamp, конвертированный из строки даты/времени.
Этот валидатор не проверяет данные. Вместо этого он присваивает значения по умолчанию проходящим проверку атрибутам, если они пусты.
- value : значение по умолчанию или функция обратного вызова, которая возвращает значение по умолчанию, которое будет присвоено проверяемому атрибуту, если он пустой. Функция обратного вызова должна выглядеть так:
Информация: Как определить, является значение пустым или нет, более подробно описано в отдельной статье в секции Пустые значения.
Этот валидатор проверяет, что входящее значение является корректным double числом. Он идентичен валидатору number. (Прим. пер.: корректным float числом).
- max : верхний лимит (включительно) для значений. Если не установлен, значит, валидатор не будет проверять верхний лимит.
- min : Нижний лимит (включительно) для значений. Если не установлен, валидатор не будет проверять нижний лимит.
Валидатор проверяет, что значение входящих данных является корректным email-адресом.
- allowName : можно ли передавать в атрибут имя (пример: John Smith ). По умолчанию - false.
- checkDNS , проверяет, существует ли доменное имя для введенного адреса (и A, и MX запись). Учтите, что проверка может закончится неудачей, что может быть вызвано временными проблемами с DNS, даже если email-адрес корректен. По умолчанию - false.
- enableIDN , нужно ли учитывать IDN (многоязычные доменные имена). По умолчанию - false. Учтите, что для использования IDN-валидации вам нужно установить и включить PHP расширение intl , иначе будет выброшено исключение.
Этот валидатор ищет входящие данные в столбце таблицы. Он работает только с атрибутами модели Active Record. Он поддерживает проверку и одного столбца, и нескольких.
- targetClass : имя класса Active Record, который должен быть использован для проверки входящего значения. Если не установлен, будет использован класс текущей модели.
- targetAttribute : имя атрибута в targetClass который должен быть использован для проверки существования входящего значения. Если не установлен, будет использовано имя атрибута, который проверяется в данный момент. Вы можете использовать массив для валидации нескольких столбцов одновременно. Значения массива являются атрибутами, которые будут использованы для проверки существования, тогда как ключи массива будут являться атрибутами, чьи значения будут проверены. Если ключ и значения одинаковы, вы можете указать только значение.
- filter : дополнительный фильтр, который будет добавлен к запросу в базу данных для проверки на существование значения. Это может быть строка или массив, представляющие дополнительные условия в запросе (подробнее о формате значений запроса: [[yii\db\Query::where()]]), или анонимная функция с сигнатурой function ($query) , где $query - это [[yii\db\Query|Query]] объект, который вы можете модифицировать в функции.
- allowArray : разрешать ли значению быть массивом. По умолчанию - false. Если свойство установлено в true и тип входящих данных - массив, тогда каждый его элемент должен существовать в соответствующем столбце таблицы. Помните, что это свойство не может быть установлено в true, если вы валидируете несколько столбцов, передавая их в targetAttribute как массив.
Этот валидатор проверяет, что 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]]. Пожалуйста, посмотрите раздел Загрузка файлов для более полного понимания загрузки и проверки файлов.
Этот валидатор не проверяет данные. Вместо этого он применяет указанный фильтр к входящему значению и присваивает результат применения фильтра атрибуту.
- filter : PHP-callback, осуществляющий фильтрацию. Это может быть глобальная php функция, анонимная функция и т.д. Функция должна выглядеть как function ($value) < return $newValue; >. Это свойство обязательно должно быть установлено.
- skipOnArray : нужно ли пропускать валидацию, если входящим значением является массив. По умолчанию - false. Помните, что если фильтр не может принимать массив, вы должны установить это значение в true. Иначе могут произойти различные ошибки PHP.
Трюк: Если вы хотите удалить пробелы вокруг значений атрибута, вы можете использовать валидатор trim.
Этот валидатор проверяет, что входящие данные являются корректным файлом изображения. Он расширяет file валидатор и наследует все его свойства. Кроме того, он поддерживает следующие дополнительные свойства, специфичные для валидации изображений:
- minWidth : минимальная ширина изображения. По умолчанию null, что значит, что нет нижнего лимита.
- maxWidth : максимальная ширина изображения. По умолчанию null, что значит, что нет верхнего лимита.
- minHeight : минимальная высота изображения. По умолчанию null, что значит, что нет нижнего лимита.
- maxHeight : максимальная высота изображения. По умолчанию null, что значит, что нет верхнего лимита.
Этот валидатор проверяет, что вхоящее значение соответствует одному из значений, указанных в range .
- range : список значений, с которыми будет сравниваться входящее значение.
- strict : должно ли сравнение входящего значения со списком значений быть строгим (учитывать тип данных). По умолчанию false.
- not : должен ли результат проверки быть инвертирован. По умолчанию - false. Если свойство установлено в true, валидатор проверяет, что входящее значение НЕ соответствует ни одному из значений, указанных в range .
- allowArray : устанавливает, допустимо ли использовать массив в качестве входных данных. Если установлено в true и входящие данные являются массивом, для каждого элемента входящего массива должно быть найдено соответствие в range .
Проверяет, что входящее значение является integer значением.
- max : верхний лимит (включительно) для числа. Если не установлено, валидатор не будет проверять верхний лимит.
- min : нижний лимит (включительно) для числа. Если не установлено, валидатор не будет проверять нижний лимит.
Этот валидатор проверяет, что входящее значение совпадает с указанным регулярным выражением.
- pattern : регулярное выражение, с которым должно совпадать входящее значение. Это свойство должно быть установлено, иначе будет выброшено исключение.
- not : инвертирует регулярное выражение. По умолчанию false, что значит, что валидация будет успешна, только если входящее значение совпадают с шаблоном. Если установлено в true, валидация будет успешна, только если входящее значение НЕ совпадает с шаблоном.
Этот валидатор проверяет, являются ли входящие значения числовыми. Он эквивалентен валидатору double.
- max : верхний лимит (включительно) для числа. Если не установлено, валидатор не будет проверять верхний лимит.
- min : нижний лимит (включительно) для числа. Если не установлено, валидатор не будет проверять нижний лимит.
Этот валидатор проверяет, являются ли входящие значения не пустыми.
- requiredValue : желаемое значение, которому должны соответствовать проверяемые данные. Если не установлено, это значит, что данные должны быть не пусты.
- strict : учитывать или нет соответствие типу данных при валидации (строгое сравнение). Если requiredValue не установлено, а это свойство установлено в true, валидатор проверит, что входящее значение строго не соответствует null; если свойство установлено в false, валидатор будет проверять значение на пустоту с приведением типов. Если requiredValue установлено, сравнение между входящими данными и requiredValue будет также учитывать тип данных, если это свойство установлено в true.
Информация: как определить, является ли значение пустым или нет, подробнее рассказывается в секции Пустые значения.
Этот валидатор не проверяет данные. Вместо этого он указывает, что атрибут является безопасным атрибутом.
Этот валидатор проверяет, что входящее значение - это корректная строка с указанной длиной.
- length : описывает длину для строки, проходящей валидацию. Может быть определен следующими способами:
- числом: точная длина, которой должна соответствовать строка;
- массив с одним элементом: минимальная длина входящей строки (напр.: [8] ). Это перезапишет min .
- массив с двумя элементами: минимальная и максимальная длина входящей строки (напр.: [8, 128] ). Это перезапишет и min , и max .
Этот валидатор не производит проверки данных. Вместо этого он будет обрезать пробелы вокруг входящих данных. Помните, что если входящие данные являются массивом, то они будут проигнорированы этим валидатором.
Этот валидатор проверяет входящие данные на уникальность в столбце таблицы. Он работает только с атрибутами модели Active Record. Он поддерживает проверку либо одного столбца, либо нескольких.
[[yii\validators\FilterValidator|filter]]
Этот валидатор не проверяет данные. Вместо этого он применяет указанный фильтр к входящему значению и присваивает результат применения фильтра атрибуту.
- filter : PHP-callback, осуществляющий фильтрацию. Это может быть глобальная php функция, анонимная функция и т.д. Функция должна выглядеть как function ($value) < return $newValue; >. Это свойство обязательно должно быть установлено.
- skipOnArray : нужно ли пропускать валидацию, если входящим значением является массив. По умолчанию - false. Помните, что если фильтр не может принимать массив, вы должны установить это значение в true. Иначе могут произойти различные ошибки PHP.
Трюк: Если вы хотите удалить пробелы вокруг значений атрибута, вы можете использовать валидатор trim.
Protected Methods
Method Description Defined By loadMimeAliases() Loads MIME aliases from the specified file. yii\helpers\BaseFileHelper loadMimeTypes() Loads MIME types from the specified file. yii\helpers\BaseFileHelper normalizeOptions() yii\helpers\BaseFileHelper Constants
Constant Value Description Defined By PATTERN_CASE_INSENSITIVE 32 yii\helpers\BaseFileHelper PATTERN_ENDSWITH 4 yii\helpers\BaseFileHelper PATTERN_MUSTBEDIR 8 yii\helpers\BaseFileHelper PATTERN_NEGATIVE 16 yii\helpers\BaseFileHelper PATTERN_NODIR 1 yii\helpers\BaseFileHelper Property Details
The path (or alias) of a PHP file containing MIME aliases.
The path (or alias) of a PHP file containing MIME type information.
[[yii\validators\SafeValidator|safe]]
Этот валидатор не проверяет данные. Вместо этого он указывает, что атрибут является безопасным атрибутом.
Email / валидация email
[[yii\captcha\CaptchaValidator|captcha]]
Этот валидатор обычно используется вместе с [[yii\captcha\CaptchaAction]] и [[yii\captcha\Captcha]], чтобы убедиться, что данные в инпуте соответствуют верификационному коду, отображенному с помощью виджета [[yii\captcha\Captcha|CAPTCHA]].
- caseSensitive : необходимо ли учитывать чувствительность к регистру при сравнении. По умолчанию - false.
- captchaAction : маршрут, соответствующий [[yii\captcha\CaptchaAction|CAPTCHA action]], который рендерит изображение с CAPTCHA. По умолчанию - 'site/captcha' .
- skipOnEmpty : может ли валидация быть пропущена, если input пустой. По умолчанию - false, что означает, что input обязателен.
[[yii\validators\IpValidator|ip]]
Этот валидатор проверяет, является ли входящее значение валидным IPv4/IPv6 адресом или подсетью. Он также может изменять значение атрибута, если включена нормализация или развертывание IPv6 адресов.
Валидатор имеет такие свойства:
- ipv4 : может ли проверяемое значение быть IPv4 адрессом. По умолчанию true.
- ipv6 : может ли проверяемое значение быть IPv6 адрессом. По умолчанию true.
subnet : может ли проверяемое значение быть IP адресом с CIDR (подсетью), например 192.168.10.0/24
- true - указание подсети обязательно;
- false - указание подсети запрещено;
null - указание подсети возможно, но не обязательно.
По умолчанию false.
- 10.0.1.5 будет приведен к 10.0.1.5/32
- 2008:db0::1 будет приведен к 2008:db0::1/128
ranges : массив IPv4 или IPv6 диапазонов, которые разрешены или запрещены.
Если свойство не установлено, все IP адреса разрешены. Иначе, правила будут проверяться последовательно до первого вхождения. IP адрес будет запрещен, если не подпадет ни под одно правило. Например:
В этом примере, доступ разрешен для всех IPv4 и IPv6 адресов кроме подсети 192.168.10.0/24 . IPv4 адрес 192.168.10.128 также разрешен, так как находится перед запрещающим правилом.
networks : массив псевдониимов, которые могут быть использованы в ranges . Формат массива:
значение - массив строк. Строка может быть как диапазоном адресов, так и другим псведонимом. Строка может иметь символ отрицания ! в начале (не зависит от свойства negation ).
Следующие псевдонимы определены по умолчанию:
Info: Этот валидатор стал доступным начиная с версии 2.0.7.
Image / валидация изображений
[[yii\validators\FilterValidator|trim]]
Этот валидатор не производит проверки данных. Вместо этого он будет обрезать пробелы вокруг входящих данных. Помните, что если входящие данные являются массивом, то они будут проигнорированы этим валидатором.
Compare / сравнение со значением атрибута или с константой
- compareAttribute: имя атрибута, с которым будет проводиться сравнение;
- compareValue: значение, с которым будет проводиться сравнение. Если заданы compareAttributeи compareValue, то сравнение будет проводиться с compareValue;
- type: тип данных, по которому будет происходить сравнение. По умолчанию string.
- Если указан тип string, то значения будут сравниваться, как строки, никакой конвертации данных перед сравнением проводиться не будет.
- Если указан тип number, то значения будут сравниваться, как числа, при этом строки будут преобразованы в числа перед сравнением.
Default / значение по умолчанию
- value: это значение или анонимная функция, которая возвращает значение атрибута;
- skipOnEmpty: пропускать ли проверку, если поле не заполнено. По умолчанию false.
Each / валидация массивов
[[yii\validators\NumberValidator|integer]]
Проверяет, что входящее значение является integer значением.
- max : верхний лимит (включительно) для числа. Если не установлено, валидатор не будет проверять верхний лимит.
- min : нижний лимит (включительно) для числа. Если не установлено, валидатор не будет проверять нижний лимит.
Exist / валидация на существование связанной модели
- targetClass: имя класса ActiveRecord связанной модели;
- targetAttribute: имя атрибута ActiveRecord, которое должно использоваться для проверки существования текущего значения атрибута. Если параметр не установлен, то будет использоваться имя проверяемого атрибута. Также можно использовать массив для проверки наличия нескольких столбцов одновременно. Ключ массива - это имя атрибута со значением для проверки, значение массива - это имя поля базы данных для поиска;
- filter: дополнительный фильтр, который будет применяться к запросу БД, используемому для проверки существования значения атрибута. Это может быть строка или массив, представляющий дополнительное условие запроса, или функция, в которой можно изменить запрос (инстанс Query);
- allowArray: разрешить ли массив в качестве значения атрибута. По умолчанию false;
- targetAttributeJunction: and|or как связаны атрибуты. По умолчанию and.
[[yii\validators\StringValidator|string]]
Этот валидатор проверяет, что входящее значение - это корректная строка с указанной длиной.
- length : описывает длину для строки, проходящей валидацию. Может быть определен следующими способами:
- числом: точная длина, которой должна соответствовать строка;
- массив с одним элементом: минимальная длина входящей строки (напр.: [8] ). Это перезапишет min .
- массив с двумя элементами: минимальная и максимальная длина входящей строки (напр.: [8, 128] ). Это перезапишет и min , и max .
[[yii\validators\BooleanValidator|boolean]]
Этот валидатор проверяет, что второе значение является boolean.
- trueValue : значение, соответствующее true. По умолчанию - '1' .
- falseValue : значение, соответствующее false. По умолчанию - '0' .
- strict : должна ли проверка учитывать соответствие типов данных trueValue или falseValue . По умолчанию - false .
Note: Из-за того, что как правило данные, полученные из HTML-форм, представляются в виде строки, обычно вам стоит оставить свойство [[yii\validators\BooleanValidator::strict|strict]] равным false.
[[yii\validators\NumberValidator|double]]
Этот валидатор проверяет, что входящее значение является корректным double числом. Он идентичен валидатору number. (Прим. пер.: корректным float числом).
- max : верхний лимит (включительно) для значений. Если не установлен, значит, валидатор не будет проверять верхний лимит.
- min : Нижний лимит (включительно) для значений. Если не установлен, валидатор не будет проверять нижний лимит.
[[yii\validators\DateValidator|date]]
Этот валидатор проверяет соответствие входящих данных форматам date, time или datetime. Опционально, он может конвертировать входящее значение в UNIX timestamp и сохранить в атрибуте, описанном здесь: [[yii\validators\DateValidator::timestampAttribute|timestampAttribute]].
- format : формат даты/времени, согласно которому должна быть сделана проверка. Чтобы узнать больше о формате строки, пожалуйста, посмотрите руководство PHP по date_create_from_format() Значением по умолчанию является 'Y-m-d' .
- timestampAttribute : имя атрибута, которому этот валидатор может передать UNIX timestamp, конвертированный из строки даты/времени.
[[yii\validators\DefaultValueValidator|default]]
Этот валидатор не проверяет данные. Вместо этого он присваивает значения по умолчанию проходящим проверку атрибутам, если они пусты.
- value : значение по умолчанию или функция обратного вызова, которая возвращает значение по умолчанию, которое будет присвоено проверяемому атрибуту, если он пустой. Функция обратного вызова должна выглядеть так:
Info: Как определить, является значение пустым или нет, более подробно описано в отдельной статье в секции Пустые значения.
Читайте также: