跳到内容

如何根据单击的按钮选择验证组

编辑此页

当您的表单包含多个提交按钮时,您可以根据用于提交表单的按钮更改验证组。 例如,考虑一个向导中的表单,它允许您前进到下一步或返回到上一步。 还要假设当返回到上一步时,表单的数据应该被保存,但不应该被验证。

首先,我们需要将两个按钮添加到表单中

1
2
3
4
5
$form = $this->createFormBuilder($task)
    // ...
    ->add('nextStep', SubmitType::class)
    ->add('previousStep', SubmitType::class)
    ->getForm();

然后,我们将返回上一步的按钮配置为运行特定的验证组。 在此示例中,我们希望它抑制验证,因此我们将其 validation_groups 选项设置为 false

1
2
3
4
5
6
$form = $this->createFormBuilder($task)
    // ...
    ->add('previousStep', SubmitType::class, [
        'validation_groups' => false,
    ])
    ->getForm();

现在,表单将跳过您的验证约束。 它仍然会验证基本完整性约束,例如检查上传的文件是否过大,或者您是否尝试在数字字段中提交文本。

另请参阅

要了解如何使用服务动态解析 validation_groups,请阅读 如何动态配置表单验证组 文章。

这项工作,包括代码示例,根据 Creative Commons BY-SA 3.0 许可协议获得许可。
目录
    版本