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
Эта опция может быть использована, чтобы добавить к ограничению произвольные данные, относящиеся к домену. Сконфигурированная нагрузка не используется компонентом Валидатор, но его обработка полностью зависит от вас.
Например, вы можете захотеть исользовать несколько уровней ошибок, чтобы представить неудачные ограничения в фронт-энде по-разному, в зависимости от степени сложности ошибки.