Как проверить массив массивов в Symfony 4 - PullRequest
0 голосов
/ 19 ноября 2018

Я хочу знать, как я могу проверить массив массивов в Symfony. Мои правила проверки:

  1. Пользователь - NotBlank
  2. Дата - Дата и NotBlank
  3. Подарок - NotBlank

Пока я сделал это:

$validator = Validation::createValidator();

$constraint = new Assert\Collection(array(
        'user' => new Assert\NotBlank(),
        'date' => new Assert\Date(),
        'present' => new Assert\NotBlank()
));

$violations = $validator->validate($request->request->get('absences')[0], $constraint);

Но проблема в том, что он позволяет проверять только один массив, например.
$request->request->get('absences')[0].

Вот как выглядит массив:

enter image description here

1 Ответ

0 голосов
/ 19 ноября 2018

Вы должны поместить ограничение Collection внутри Все ограничение:

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

Итак, ваш код, вероятно, будет выглядеть так:

$constraint = new Assert\All(['constraints' => [
    new Assert\Collection([
        'user' => new Assert\NotBlank(),
        'date' => new Assert\Date(),
        'present' => new Assert\NotBlank()
    ])
]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...