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?”