Type
Дата обновления перевода 2025-07-27
Type
Валидирует, что значение является конкретным типом данных. Например, если
переменная должна быть массивом, то вы можете использовать это ограничение
с опцией типа array, чтобы валидировать это.
| ??????????? ? | ???????? ??? ?????? |
| ????? | Type |
| ????????? | TypeValidator |
Базовое применение
Проверит, является ли emailAddress экземпляром Symfony\Component\Mime\Address,
firstName - типом string (используя PHP-функцию is_string),
age - integer (используя PHP-функцию is_int) и содержит ли
accessCode либо только буквы, либо только цифры (используя PHP-функции
ctype_alpha и ctype_digit).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
// src/Entity/Author.php
namespace App\Entity;
use Symfony\Component\Mime\Address;
use Symfony\Component\Validator\Constraints as Assert;
class Author
{
#[Assert\Type(Address::class)]
protected $emailAddress;
#[Assert\Type('string')]
protected $firstName;
#[Assert\Type(
type: 'integer',
message: 'The value {{ value }} is not a valid {{ type }}.',
)]
protected $age;
#[Assert\Type(type: ['alpha', 'digit'])]
protected $accessCode;
}
Дата обновления перевода 2025-02-21
Note
Как и в большинстве других ограничений, null считается валидным значением.
Это для того, чтобы позволить использование опциональных значений. Если значение
является обязательным, распространенным решением будет комбинация этого ограничения с
NotNull.
Опции
Дата обновления перевода 2023-09-24
groups
тип: array | string по умолчанию: null
Определяет группу или группы валидации ограничений. Прочитайте больше о группах валидации.
message
тип: string по умолчанию: Это значение должно быть типом {{ type }}.
Сообщение, если основоположные данные не есть заданного типа.
Вы можете использовать следующие параметры в сообщении:
| ???????? | ???????? |
|---|---|
{{ type }} |
????????? ??? |
{{ value }} |
??????? (??????????) ???????? |
{{ label }} |
??????????????? ????? ???? ????? |
Дата обновления перевода 2025-07-27
payload
тип: mixed по умолчанию: null
Эта опция может быть использована, чтобы добавить к ограничению произвольные данные, относящиеся к домену. Сконфигурированная нагрузка не используется компонентом Валидатор, но его обработка полностью зависит от вас.
Например, вы можете захотеть исользовать несколько уровней ошибок, чтобы представить неудачные ограничения в фронт-энде по-разному, в зависимости от степени сложности ошибки.
type
тип: string или array [опция по умолчанию ]
Эта обязательная опция определят тип или коллекцию типов, разрешённых для заданного
значения. Каждый тип является либо FQCN (полностью квалифицированным именем класса)
какого-то PHP-класса/интерфейса, либо валидным типом данных PHP (проверяется функциями
PHP is_()):
- bool
- boolean
- int
- integer
- long
- float
- double
- real
- numeric
- string
- scalar
- array
- iterable
- countable
- callable
- object
- resource
- null
Если вы имеете дело с массивами, вы можете использовать следующие типы в ограничении:
list, который использует array_is_list внутреннеassociative_array, который является истинным для любого непустого массива, не являющегося списком
Также, вы можете использовать функции ctype_*() из соответствующих
встроенных PHP-расширений. Рассмотрите список функций ctype:
Убедитесь, что установлена правильная локаль перед тем, как использовать одну из них.
7.1
Типы list и associative_array были представлены в
Symfony 7.1.
И наконец, вы можете использовать аггрегированные функции:
number:is_int || is_float && !is_nanfinite-float:is_float && is_finitefinite-number:is_int || is_float && is_finite