3
这个想法是首先验证是否所有必填字段都不为空。如果提供了所有必需的数据,则验证输入的值是否正确。群体序列的常见情况。如果我将new GroupSequence(["Basic", "Strict"])
应用于validation_groups
选项,那么即使所有字段都为空,表格也是有效的。如果validation_groups
值设置为["Basic", "Strict"]
该表单被正确验证但有所有约束,这不是我想要的。我究竟做错了什么?如何在symfony表单中对表单类型使用组序列?
这里是我的代码:
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"])
]);
}
}
您是否尝试将GroupSequence映射放入表单数据类对象? (您的用户实体或任何DTO?)我无法在文档中找到任何直接在表单中使用它的引用(或者您有任何链接到您的用法)。 – goto
你试过了吗“validation_groups”=> ['Default','Basic','Strict']? – Filchev
@goto,没有DTO或实体可用,在这个项目中是不必要的。 Forms和Validation组件在Symfony标准分发之外独立工作。 –