Symfony4-根据其他字段的值验证字段

时间:2019-02-18 07:42:12

标签: forms symfony validation symfony4 multi-step

我正在构建一个包含多个步骤和一些条件字段的大型表单,无法为我的问题找到好的解决方案。

例如,如果字段A为“ Foo”,则字段B通过Javascript显示,并且必须通过Symfony进行验证,否则该字段必须为空。有没有办法做到这一点?

PS: https://github.com/craue/CraueFormFlowBundle是处理复杂的多步骤表单的好方法吗?我应该使用组和实体还是在没有类的情况下进行构建?最佳做法是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

我的解决方案:

我认为您应该使用Symfony Form Events。在事件中,您可以执行自定义操作,例如添加错误,检查所有形式的值,动态删除和添加验证器/字段。

有关表单事件流程的更多信息,您可以阅读here

Add error to Symfony 2 form element中,您有疑问如何从事件侦听器向字段添加错误(在symfony 4中,操作类似)

我对craue / CraueFormFlowBundle的看法:

我在项目中使用CraueFormFlowBundle来创建复杂的多步骤表单。它非常有用,可节省大量时间。我根据CraueFormFlowBundle + Doctrine entities结合validation groups + symfony form events(我推荐的功能强大而灵活的解决方案)创建了许多表格