Forms &引用;“验证”;Symfony2装载表格

Forms &引用;“验证”;Symfony2装载表格,forms,validation,symfony,Forms,Validation,Symfony,我知道这不是标准,但我想看看是否有一种简单灵活的方法 我的问题与类似,只是我还将处理可以编辑的实体 我有一个实体被绑定在一起,以创建一个购物车/订单/等。我希望能够突出显示提交最终购物车所需的所有字段。但是,我希望用户能够在两者之间保存部分信息。也就是说,在流程结束之前,实际上并不需要这些字段 例如,假设我们正在处理跨多个表单的税务信息或其他复杂的信息。出于验证的目的,我可能会要求某些字段不能为空,或者根据其收入来源或其他原因具有回调约束。 同时,如果有人必须手动输入所有信息,那么需要立即坐下来

我知道这不是标准,但我想看看是否有一种简单灵活的方法

我的问题与类似,只是我还将处理可以编辑的实体

我有一个实体被绑定在一起,以创建一个购物车/订单/等。我希望能够突出显示提交最终购物车所需的所有字段。但是,我希望用户能够在两者之间保存部分信息。也就是说,在流程结束之前,实际上并不需要这些字段

例如,假设我们正在处理跨多个表单的税务信息或其他复杂的信息。出于验证的目的,我可能会要求某些字段不能为空,或者根据其收入来源或其他原因具有回调约束。 同时,如果有人必须手动输入所有信息,那么需要立即坐下来处理大量信息。(假设没有我可以点击的服务来预填充信息。)因此,能够保存部分信息,即使它在完成整个过程时仍然无效,这将是有益的

因此,如果用户在几天或两周后回来,我希望根据我在假设示例中手头的任何信息,直观地指出他们仍然需要填写的内容

表单本身是在symfony2中生成的,并映射到实体。实体将混合使用验证类。一些作为单个字段上的注释,另一些作为自定义回调。我在考虑让表单生成器做一些奇怪的事情,比如

  • 将验证器注入表单中。在生成每个字段时,根据非默认验证组验证每个映射值的属性。如果属性或标签属性无效,请添加该属性或标签属性
  • 将验证器注入侦听器。循环遍历表单的映射值,然后使用修改的attr/label\u attr选项删除并添加它们,因为只有在添加字段时才能设置选项*
通过修改attr或label_attr,我的想法是可以使用css向目标添加类或自定义属性。在视觉上,它将由字段上的不同颜色边框或标签后出现的星号表示。在这个场景中,所需的选项在很大程度上是错误的,因为我想像前面描述的那样启用保存部分实体

我不能同意的答案是,如果加载了一个实体进行编辑,但提交了空白信息,它将加载带有空白信息的表单

*这种方法遇到了一个问题,自定义表单类型正在添加“输入”选项。当我使用旧选项的副本重新添加表单字段时,我必须首先删除此“输入”选项,以避免出现UndefinedOptionsException,并实际添加该字段。对我有限的Symfony形式知识来说,这似乎很奇怪

希望前提是有意义的。如果其他任何人有任何灵活和强大的解决方案,我很乐意听到他们。谢谢