Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation 将验证器添加到自定义表单类型_Validation_Symfony - Fatal编程技术网

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

Validation 将验证器添加到自定义表单类型,validation,symfony,Validation,Symfony,如何向自定义表单类型添加验证程序?以伊班为例 use Symfony\Component\Validator\Constraints\IbanValidator; class IBANType extends AbstractType { public function getName() { return 'iban'; } public function getParent() { return 'text';

如何向自定义表单类型添加验证程序?以伊班为例

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 ???
    }
}
他们建议使用监听器:

FormValidator接口已弃用,将被删除 在Symfony 2.3中删除

如果使用此接口实现了自定义验证器,则可以 用事件侦听器代替它们,以侦听 FormEvents::POST_BIND(或任何其他*BIND事件)。万一你 使用CallbackValidator类,现在应该传递回调 直接添加到addEventListener

但是怎么做呢?

试试这个:

use Symfony\Component\Validator\Constraints\IbanValidator;

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

有关这方面的更多信息,请查看文档:为什么我需要添加新字段?我得到了一个明显的错误:“您不能将子元素添加到一个简单的表单中。也许您应该将选项“component”设置为true?”