0

我有一个案子给你。我有一个包含两个整数的实体。两者都在 0 到 100 之间,但一个是最小值,一个是最大值。因此,最大值应大于或等于最小值。

我看过http://symfony.com/doc/current/book/validation.htmlhttp://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,我需要将最小值和最大值相互比较。如何在“max”验证器中引用“min”值?

4

1 回答 1

3

您可以使用回调约束来使用您自己的逻辑来比较值并在需要时添加违规。请参阅http://symfony.com/doc/current/reference/constraints/Callback.html

于 2013-04-08T16:19:15.310 回答