symfony2 addValidator

时间:2013-04-16 20:27:49

标签: symfony-2.2

我已经阅读了有关如何根据另一个字段的值验证字段值的信息。但所有这些都在symfony2.1中,它使用函数“isValid()”。这不是我的情况,因为我使用“validate()”函数。

这是我的代码:

public function buildForm(FormBuilderInterface $builder, array $options)
{ 
    $builder->add('type'); 
    $builder->addValidator(new CallbackValidator(function(FormInterface $form){            

        $validator = new IntegerValidator();                
        $validator->validate($description->getData(),new Integer());

    }));        
}

然而,当我提交时,我总是收到此错误:

Call to a member function addViolation() on a non-object in ..\IntegerValidator.php

这是我的两个班级的代码。

class IntegerValidator extends ConstraintValidator{
    public function validate($value, Constraint $constraint)
    {
        if (!preg_match('/^[0-9]+$/', $value, $matches)) {
            $this->context->addViolation($constraint->message, array('%string%' => $value));
        }
    }
}

这是我的约束类

/**
 * @Annotation
 */
class Integer extends Constraint{
    public $message = 'The string "%string%" contains an illegal character: it can only be an integer.';
}

我怎么能实现这个?非常感谢你的帮助。

0 个答案:

没有答案