Я хочу преобразовать текстовое поле, которое я получил из представленных пользовательских данных, в объект в Symfony2. Для этого я использовал DataTransformer. Когда я использую встроенные валидаторы, такие как «NotEmpty» или «NotNull» или любые настраиваемые валидаторы, которые построены стандартным способом, Symfony2 передает мне свой конкретный объект, но я хочу проверить это текстовое поле перед преобразованием его в объект. Что мне делать? (если мой английский не так хорош)
Валидация всегда выполняется по обратным преобразованным данным.
Лучший способ добавить правило проверки до того, как произошло преобразование, – использовать прослушиватель событий или подписчика на FormEvents::PRE_SUBMIT
.
Вы получите необработанные данные. Просто примените свою логику проверки здесь, затем используйте метод $event->getForm()->get('xxxx')->addError()
чтобы добавить ошибки в соответствующее поле.
Дополнительная информация о подписчиках / слушателях событий:
http://symfony.com/doc/current/components/form/form_events.html#event-listeners http://symfony.com/doc/current/components/form/form_events.html#event-subscribers