Тип

Дата оновлення перекладу 2024-05-29

Тип

Валідує, що значення є конкретним типом даних. Наприклад, якщо змінна повинна бути масивом, то ви можете використати це обмеження з опцією типу 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;
}

Дата оновлення перекладу 2022-12-20

Note

Як і у більшості інших обмежень, null вважається валідним значенням. Це для того, щоб дозволити використання опціональних значень. Якщо значення є обовʼязковим, розповсюдженим рішенням буде комбінація цього обмеження з
NotNull.

Опції

Дата оновлення перекладу 2023-09-24

groups

тип: array | string за замовчуванням: null

Визначає групу або групи валідації обмеження. Прочитайте більше про групи валідації.

message

тип: string за замовчуванням: Це значення має бути типом {{ type }}.

Відображуване повідомлення, якщо дані, що лежать в основі, не є заданим типом.

Ви можете використати наступні параметри у цьому повідомленні:

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

Дата оновлення перекладу 2024-05-29

payload

тип: mixed за замовчуванням: null

Ця опція може бути використана, щоб додати довільні дані, специфічні для домену, до обмеження. Сконфігуроване корисне навантаження не використовується компонентом Validator, але його обробка повністю залежить від вас.

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

type

тип: string або array [опція за замовчуванням ]

Ця обовʼязкова опція визначає тип або колекцію типів, дозволених для заданого значення. Кожний тип є або FQCN (повністю кваліфікованим іменем класу) якогось класу/інтерфейсу PHP, або валідним типом даних PHP (що перевіряється функціями PHP is_()):

Якщо ви маєте справу з масивами, ви можете використовувати наступні типи в обмеженні:

  • list, який використовує array_is_list внутрішньо
  • associative_array, який є true для будь-якого непорожнього масиву, який не є списком

Також ви можете використовувати функції 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