Что проверять, когда валидатор не вызывается в Symfony 3? - PullRequest
0 голосов
/ 06 февраля 2019

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

Например, фрагменты кода, где не вызывается валидатор:

$fieldOptions['constraints'] = [
                    new NotBlank($constraintOptions)
                ];

$builder->add(
                        $builder
                            ->create($formField->getId(), EntityType::class, $fieldOptions)
                            ->addModelTransformer(
                                new EntityCollectionToArrayTransformer($this->registry, $fieldOptions['class'])
                            )
                    );

1 Ответ

0 голосов
/ 07 февраля 2019

Одна из вещей, которую нужно проверить - валидация групп.Попробуйте закомментировать любые группы проверки, чтобы они работали по умолчанию.Когда форма добавляет коллекцию форм, эти ограничения валидатора подчиненных также должны иметь одну и ту же группу.https://symfony.com/doc/3.4/validation/groups.html

При проверке только объекта User нет никакой разницы между группой по умолчанию и группой пользователей.Но есть разница, если у пользователя есть встроенные объекты.Например, представьте, что у пользователя есть свойство address, которое содержит некоторый объект Address и что вы добавили ограничение Valid к этому свойству, чтобы оно проверялось при проверке объекта User.

Если вы проверяете пользователя с помощью Defaultgroup, тогда будут использоваться любые ограничения на класс Address, входящие в группу Default.Но если вы проверяете пользователя с помощью группы проверки пользователя, то будут проверяться только ограничения на класс адреса с группой пользователей.

Другими словами, группа по умолчанию и группа имен классов (например, пользователь)идентичны, за исключением случаев, когда класс встроен в другой объект, который фактически проверяется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...