这个想法是首先验证所有必填字段是否不为空。如果提供了所有必需的数据,则验证输入的值是否正确。组序列的常见情况。但是,当我申请new GroupSequence(["Basic", "Strict"])
该validation_groups
选项时,即使所有字段都是空白的,表格也是有效的。如果validation_groups
将值设置为["Basic", "Strict"]
表单已正确验证但具有所有约束,那不是我想要的。我究竟做错了什么?
这是我的代码:
class MyType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add("name", null, [
"constraints" => new NotBlank(["groups" => ["Basic"]])
])
->add("phone", MyPhoneType::class, [
"constraints" => [
new NotBlank(["groups" => ["Basic"]]),
new PhoneNumber(["groups" => ["Strict"])
]
])
->add("email", EmailType::class, [
"constraints" => [
new NotBlank(["groups" => ["Basic"]]),
new Email(["groups" => ["Strict"]]),
],
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
"validation_groups" => new GroupSequence(["Basic", "Strict"])
]);
}
}