Symfony2表单验证 - 确保一个整数低于另一个整数

时间:2013-04-08 16:07:17

标签: validation symfony

我有一个案例给你。我有一个包含两个整数的实体。两者都在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,我需要将min和max相互比较。如何在“max”验证器中引用“min”值?

1 个答案:

答案 0 :(得分:3)

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