如何根据单击的按钮选择验证组
当您的表单包含多个提交按钮时,您可以根据用于提交表单的按钮更改验证组。 例如,考虑一个向导中的表单,它允许您前进到下一步或返回到上一步。 还要假设当返回到上一步时,表单的数据应该被保存,但不应该被验证。
首先,我们需要将两个按钮添加到表单中
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 许可协议获得许可。