Symfony:检查所有约束,在第一次违规后不要停止

时间:2017-02-26 14:03:54

标签: validation symfony

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('name', TextType::class, array(
            'constraints' => array(
                new Length(array(
                    "min" => 2,
                    "max" => 7,
                )),
                new NotBlank(),
            ),
    ));
}

验证此表单后,我只会从FormErrorIterator中检索第一个违规行为:

空白字段 - > NotBlank

有没有选项,所以我总是检索所有违规行为?

例如,如果该字段为空,则FormErrorIterator应检索NotBlank和MinLength违规!

1 个答案:

答案 0 :(得分:0)

我刚看了LengthValidator

这似乎是Constraint Validator特有的。 如果值为空,LengthValidator根本不会抛出任何违规行为。

如果值不为空,则首先检查maxLength。如果它是一个约束违规,它将被抛出,并且不再检查minLength。

这有点烦人。至少应该有一个选项,如果它们应该被检查,尽管它们是空的。