@grupsa

Symfony2 формы Как вызвать валидатор раньше трансформера?

У меня на форме есть поле для ввода даты (widget text)
Мне необходимо проверить её регулярным выражением, затем преобразовать в Datetime
Для проверки я в классе формы добавляю constraint типа Regex, для преобразования - addModelTransformer либо addViewTransformer. Ну и Regex выдаёт ошибку, так как ему вместо строки передаётся DateTime. Не хотелось бы выносить преобразование в контроллер.
  • Вопрос задан
  • 240 просмотров
Решения вопроса 1
lexxpavlov
@lexxpavlov
Программист, преподаватель
Дело в том, что валидация проверяется при обратной трансформации, поэтому, всегда вначале происходит трансформация, а потом только - валидация.

Вы должны делать валидацию не через стандартные Constraints, напишите свою проверку, и запускайте её через событие, использующее FormEvents::PRE_SUBMIT.

В этом ответе есть об этом чуть больше инфы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы