如何基于点击按钮选择验证组

3.4 版本
维护中的版本

当你的表单包含多个按钮,你可以根据哪个按钮提交来改变表单验证组。例如,一个表单引导,允许您前进到下一步或返回到上一步。当返回到上一步,表单的数据应该被保存,但不能验证。

首先,我们要添加两个按钮到窗体:

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, array(
        'validation_groups' => false,
    ))
    ->getForm();

现在表单将跳过验证约束。但是他仍将验证基本的完整性约束,如检查一个上传文件太大或者你提交无效字段等。

怎样使用服务去解决动态validation_groups 请阅读 Cookbook的 如何动态地配置验证组

本文,包括例程代码在内,采用的是 Creative Commons BY-SA 3.0 创作共用授权。

登录symfonychina 发表评论或留下问题(我们会尽量回复)