Cascade

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

Cascade

Ограничение Cascade используется для проверки целого класса, включая все объекты, которые могут храниться в его свойствах. Благодаря этому ограничению вам не нужно добавлять ограничение Valid к каждому дочернему объекту, который вы хотите валидировать в вашем классе.

??????????? ? ??????
????? Cascade

Базовое применение

В следующем примере ограничение Cascade скажет валидатору валидировать все свойства класса, включая ограничения, которые установлены в дочерних классах BookMetadata и Author:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// src/Model/BookCollection.php
namespace App\Model;

use App\Model\Author;
use App\Model\BookMetadata;
use Symfony\Component\Validator\Constraints as Assert;

#[Assert\Cascade]
class BookCollection
{
    #[Assert\NotBlank]
    protected string $name = '';

    public BookMetadata $metadata;

    public Author $author;

    // ...
}

Опции

Опция groups недоступна для этого ограничения.

exclude

тип: array | string по умолчанию: null

Эта опция может быть использована, чтоб исключить одно или больше свойств из валидации каскада.

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

payload

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

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

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