symfony IBAN 表单字段验证

symfony IBAN form field validation

我正在尝试使用 validateValue

对特定元素使用 symfony 验证

这是我的代码

$ibanConstraint = new IbanValidator();
$ibanConstraint->message = 'Invalid IBAN';
$errorList = $this->_validator->validateValue($form->get('iban')->getData(), $ibanConstraint);

但是它会抛出类似

的异常

ContextErrorException: Catchable Fatal Error: Argument 1 passed to Symfony\Bundle\FrameworkBundle\Validator\ConstraintValidatorFactory::getInstance() must be an instance of Symfony\Component\Validator\Constraint, instance of Symfony\Component\Validator\Constraints\IbanValidator given,

请问这是什么问题

因为IbanValidator是验证器(正如它的名字所说)。但是在 Validator 组件中你不需要另一个验证器。你只需要约束来验证。

您应该使用约束对象创建 $ibanConstraint

$ibanConstraint = new Iban();