今天我发现了Symfony >=2.3验证器的一些奇怪问题。如果你使用:
$metadata->addPropertyConstraint('body', new Length(array('min' => 50)));
它允许空输入。我认为不应该这样做,或者我错了吗?
$metadata->addPropertyConstraint('body', new Length(array('min' => 50)));
它允许空输入。我认为不应该这样做,或者我错了吗?
这是预期的行为。
想一想不同的使用情况:电话号码可以是可选的,但如果用户输入了电话号码,则至少应该有10个字符。
因此,您需要将Length约束与NotNull/NotBlank约束相结合。
有关更多解释,请参见https://github.com/symfony/symfony/issues/10221#issuecomment-34769066。
顺便说一下:实际上还有一个关于空字符串处理的头脑风暴https://github.com/symfony/symfony/issues/11956。