我正在构建一个包含多个步骤和一些条件字段的大型表单,无法为我的问题找到好的解决方案。
例如,如果字段A为“ Foo”,则字段B通过Javascript显示,并且必须通过Symfony进行验证,否则该字段必须为空。有没有办法做到这一点?
PS: https://github.com/craue/CraueFormFlowBundle是处理复杂的多步骤表单的好方法吗?我应该使用组和实体还是在没有类的情况下进行构建?最佳做法是什么?
谢谢!
答案 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
(我推荐的功能强大而灵活的解决方案)创建了许多表格