我有一个案例给你。我有一个包含两个整数的实体。两者都在0到100之间,但一个是最小值,一个是最大值。因此,最大值应大于或等于最小值。
我查看了http://symfony.com/doc/current/book/validation.html和http://symfony.com/doc/current/cookbook/validation/custom_constraint.html
在最后一个链接中,我们有以下示例:
// src/Acme/DemoBundle/Validator/Constraints/ContainsAlphanumericValidator.php
namespace Acme\DemoBundle\Validator\Constraints;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
class ContainsAlphanumericValidator extends ConstraintValidator
{
public function validate($value, Constraint $constraint)
{
if (!preg_match('/^[a-zA-Za0-9]+$/', $value, $matches)) {
$this->context->addViolation($constraint->message, array('%string%' => $value));
}
}
}
但这需要$ value,我需要将min和max相互比较。如何在“max”验证器中引用“min”值?
答案 0 :(得分:3)
您可以使用回调约束来使用您自己的逻辑来比较值,并在需要时添加违规。见http://symfony.com/doc/current/reference/constraints/Callback.html