symfony2 2.3缺少FormBuilder :: addValidator()如何适应FormBuilderInterface?

时间:2013-09-25 13:24:28

标签: validation symfony formbuilder

似乎在最新版本的symfony2中,FormBuilder的addValidator函数已经消失。 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已被2.1中的“FormBuilderInterface”取代,但我仍然对我需要采取哪些步骤来重写此功能感到困惑。

1 个答案:

答案 0 :(得分:4)

由于FormValidatorInterface实施的Symfony 2.1 CallbackValidator已弃用,已在2.3中删除。

Upgrade to 2.1 file提供解决方案:

  

接口FormValidatorInterface已弃用,将在Symfony 2.3中删除。

     

如果使用此接口实现了自定义验证器,则可以通过监听FormEvents::POST_BIND(或任何其他*BIND事件)的事件侦听器替换它们。如果您使用CallbackValidator类,现在应该将回调直接传递给addEventListener