我在自己的堆栈中使用 Form 组件,我需要创建一个约束/验证器对。
问题是我需要修改约束内的值。例如:如果值为 123,则将其更改为 456。
我怎样才能做到这一点?我需要它由约束或验证器处理,因为我不想在所有地方重复该逻辑。
我在自己的堆栈中使用 Form 组件,我需要创建一个约束/验证器对。
问题是我需要修改约束内的值。例如:如果值为 123,则将其更改为 456。
我怎样才能做到这一点?我需要它由约束或验证器处理,因为我不想在所有地方重复该逻辑。
$object
在您的自定义约束中,如果它是表单类约束,您可以访问该变量。您应该能够在验证期间调用 set 方法。
因此,在您的自定义约束类中:
public function getTargets()
{
return self::CLASS_CONSTRAINT;
}
在您的自定义 ConstraintValidator
public function validate($object, Constraint $constraint)
{
/*
* thensomewhere in the code
*/
if($object->getNumber() == 123){
$object->setNumber(456);
}
一些帮助来源:
http://symfony.com/doc/current/cookbook/validation/custom_constraint.html
http://symfony.com/doc/current/reference/constraints/Callback.html