All

Дата обновления перевода 2023-01-14

All

При применении к массиву (или проходимому объекту), это ограничение позволяет вам применить коллекцию ограничеий к каждому элементу массива.

??????????? ? ???????? ??? ??????
????? All
????????? AllValidator

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

Представьте, что у вас есть массив строк, и что вы хотите валидировать каждую запись в этом массиве:

  • Attributes
  • YAML
  • XML
  • PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// src/Entity/User.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

// ВАЖНО: вложенные атрибуты требуют PHP 8.1 или новее
class User
{
    #[Assert\All([
        new Assert\NotBlank,
        new Assert\Length(min: 5),
    ])]
    protected $favoriteColors = [];
}

Теперь, каждая запись в массиве favoriteColors будет валидирована, чтобы не быть пустой и иметь хотя бы 5 символов.

Опции

constraints

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

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

payload

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

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

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