我正在使用现有的Symfony
应用程序,我已经(不完美)更新了Symfony 2.3
到2.7
。
我想更新现有的违规行为,然后再添加一些。
目前的课程看起来有点像这样:
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
class RFQConstraintValidator extends ConstraintValidator
{
public function validate($entity, Constraint $constraint)
{
if ($entity->$entityMethod()) {
$this->context->addViolationAt(
$entity->getTarget(),
'Can’t do this!',
array(),
null
);
}
}
}
Symfony文档建议将addViolationAt()替换为:
$this->context->buildViolation($constraint->message)
->setParameter('%string%', $value)
->addViolation();
但是,我在上下文中找不到buildViolation
。
ConstraintValidator->context (Symfony\Component\Validator\ExecutionContextValidator)
没有方法buildViolation
ConstraintValidator
有一个方法buildViolation
,但是自2.5版以来它已被弃用。