将验证器添加到自定义表单类型

时间:2015-10-16 09:29:41

标签: validation symfony

如何将验证器添加到自定义表单类型? IBAN例如。

use Symfony\Component\Validator\Constraints\IbanValidator;

class IBANType extends AbstractType
{
    public function getName()
    {
        return 'iban';
    }

    public function getParent()
    {
        return 'text';
    }

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        //IbanValidator ???
    }
}

Here他们建议使用听众:

  

不推荐使用接口FormValidatorInterface,它将是   在Symfony 2.3中删除。

     

如果您使用此界面实现了自定义验证器,则可以   用听取的事件监听器替换它们   FormEvents :: POST_BIND(或任何其他* BIND事件)。如果你   使用CallbackValidator类,您现在应该传递回调   直接添加到AddEventListener。

但是怎么样?

1 个答案:

答案 0 :(得分:3)

试试这个:

use Symfony\Component\Validator\Constraints\IbanValidator;

class IBANType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('iban', 'text', [
            'constraints' => [
                new IbanValidator(),
            ],
        ]);
    }
}