Symfony2 2.3 отсутствует FormBuilder:: addValidator() как адаптироваться к FormBuilderInterface?

Кажется, что функция addValidator для FormBuilder исчезла в последней версии symfony2. Anyonw знает, как переписать эту функциональность?

Вот мой код 2.0:

$builder-> addValidator(new CallbackValidator(function(FormInterface $form){
 $email = $form->get('email')->getData(); 
 if (empty( $email )) {
 $form['email']->addError(new FormError("Du måste ange en epostadress för användaren"));
 }
 }));

Я понимаю, что FormBuilder был заменен на "FormBuilderInterface" в 2.1, но я все еще немного смущен относительно того, какие шаги мне нужно предпринять, чтобы переписать эту функциональность.

1 ответ

Так как Symfony 2.1 FormValidatorInterface, который реализуется CallbackValidator, устарел и удален в 2.3.

Обновление до файла 2.1 дает решение:

Интерфейс FormValidatorInterface устарел и будет удален в Symfony 2.3.

Если вы внедрили специальные валидаторы, используя этот интерфейс, вы можете заменить их прослушивателями событий, прослушивающими FormEvents::POST_BIND (или любые другие события *BIND). Если вы использовали класс CallbackValidator, вы должны передать обратный вызов непосредственно на addEventListener.

licensed under cc by-sa 3.0 with attribution.