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

Symfony4 - Validate fields based on values of other fields

我正在构建一个包含多个步骤和一些条件字段的非常大的表单,但找不到适合我的问题的解决方案。

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

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

谢谢!

我的解决方案:

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

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

这里 Add error to Symfony 2 form element 你有问题如何从事件监听器向字段添加错误(在 symfony 4 中它是类似地完成的)

我对craue/CraueFormFlowBundle的看法:

我在我的项目中使用 CraueFormFlowBundle 来创建复杂的多步骤表单。 Bundle 很有用,可以节省很多时间。我基于 CraueFormFlowBundle + Doctrine entities 结合 validation groups + symfony form events 创建了很多表单 - 我可以推荐

强大而灵活的解决方案