Type

Дата обновления перевода 2024-07-25

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 Address $emailAddress;

    #[Assert\Type('string')]
    protected string $firstName;

    #[Assert\Type(
        type: 'integer',
        message: 'The value {{ value }} is not a valid {{ type }}.',
    )]
    protected int $age;

    #[Assert\Type(type: ['alpha', 'digit'])]
    protected string $accessCode;
}

Note

As with most of the other constraints, null is considered a valid value. This is to allow the use of optional values. If the value is mandatory, a common solution is to combine this constraint with NotNull.

Опции

groups

type: array | string default: null

It defines the validation group or groups of this constraint. Read more about validation groups.

message

тип: string по умолчанию: Это значение должно быть типом {{ type }}.

Сообщение, если основоположные данные не есть заданного типа.

Вы можете использовать следующие параметры в сообщении:

???????? ????????
{{ type }} ????????? ???
{{ value }} ??????? (??????????) ????????
{{ label }} ??????????????? ????? ???? ?????

Дата обновления перевода 2024-07-25

payload

тип: mixed по умолчанию: null

Эта опция может быть использована, чтобы добавить к ограничению произвольные данные, относящиеся к домену. Сконфигурированная нагрузка не используется компонентом Валидатор, но его обработка полностью зависит от вас.

Например, вы можете захотеть исользовать несколько уровней ошибок, чтобы представить неудачные ограничения в фронт-энде по-разному, в зависимости от степени сложности ошибки.

type

тип: string или array [опция по умолчанию ]

Эта обязательная опция определят тип или коллекцию типов, разрешённых для заданного значения. Каждый тип является либо FQCN (полностью квалифицированным именем класса) какого-то PHP-класса/интерфейса, либо валидным типом данных PHP (проверяется функциями PHP is_()):

Если вы имеете дело с массивами, вы можете использовать следующие типы в ограничении:

  • list, который использует array_is_list внутренне
  • associative_array, который является истинным для любого непустого массива, не являющегося списком

Также, вы можете использовать функции ctype_*() из соответствующих встроенных PHP-расширений. Рассмотрите список функций ctype:

Убедитесь, что установлена правильная локаль перед тем, как использовать одну из них.

7.1

Типы list и associative_array были представлены в Symfony 7.1.

И наконец, вы можете использовать аггрегированные функции:

  • number: is_int || is_float && !is_nan
  • finite-float: is_float && is_finite
  • finite-number: is_int || is_float && is_finite