Php 用于验证简单值的Symfony验证不适用于LessThan约束

Php 用于验证简单值的Symfony验证不适用于LessThan约束,php,validation,symfony,Php,Validation,Symfony,使用Symfony\Component\Validator\Constraints\LessThan约束来验证简单值似乎是不可能的 下面是一个简单的测试: $lessConstraint = new LessThan(); $lessConstraint->value = 5; $errors[] = $this->get('validator')->validateValue('This must fail.', $lessConstraint); var_dump($err

使用
Symfony\Component\Validator\Constraints\LessThan
约束来验证简单值似乎是不可能的

下面是一个简单的测试:

$lessConstraint = new LessThan();
$lessConstraint->value = 5;
$errors[] = $this->get('validator')->validateValue('This must fail.', $lessConstraint);
var_dump($errors);
我预期会出现约束冲突,因为测试的字符串超过5个字符。但是,结果是一个空的
ConstraintViolationList
列表:

array(1) { [0]=> object(Symfony\Component\Validator\ConstraintViolationList)#517 (1) { ["violations":"Symfony\Component\Validator\ConstraintViolationList":private]=> array(0) { } } }
Symfony\Component\Validator\Constraints\LessThanOrEqual
约束也存在同样的问题。但是,如图所示,它与
Symfony\Component\Validator\Constraints\Email
约束完美结合:如果字符串不是电子邮件,则会出现错误


我的错误是什么?

这实际上是意料之中的

我很确定您应该使用
Range
约束。那么这里发生了什么


根据
LessThanValidator
源文件(),比较是通过使用
完成的,您是对的。不知道为什么,但我假设LessThan只测试字符串,所以我认为它可以进行转换。事实上,我也可以使用这个
$this->get('validator')->validateValue(strlen('this must fail'),$lessConstraint)并保留LessThan约束。谢谢你的帮助。
$lessConstraint = new Range();
$lessConstraint->max = 5;
$errors[] = $this->get('validator')->validateValue('This must fail.', $lessConstraint);
var_dump($errors);