Symfony 表单集合预设数据不基于实体

Symfony 表单集合预设数据不基于实体,symfony,symfony-forms,entity-attribute-value,Symfony,Symfony Forms,Entity Attribute Value,我有一个难题要解决。我需要实现一个功能来创建自定义表单(即声明它应该具有哪些字段),然后能够保存和检索数据。表单生成机制基于EAV模型-表单模板实体具有表单字段实体(即表单模板属性)。每个表单字段都有类型、名称、标签等。 然后,我动态显示表单(foreach$字段为$field(…)$formBuilder->add($field->getType()等)。之后,数据保存在另一个名为FormInstanceData的实体中,该实体由字段名:字段值对组成。 困难的部分是,我必须能够使用表现类似于集

我有一个难题要解决。我需要实现一个功能来创建自定义表单(即声明它应该具有哪些字段),然后能够保存和检索数据。表单生成机制基于EAV模型-表单模板实体具有表单字段实体(即表单模板属性)。每个表单字段都有类型、名称、标签等。 然后,我动态显示表单(foreach$字段为$field(…)$formBuilder->add($field->getType()等)。之后,数据保存在另一个名为FormInstanceData的实体中,该实体由字段名:字段值对组成。 困难的部分是,我必须能够使用表现类似于集合的表单字段组创建表单模板(可以使用JS添加新的表单)。表单(使用模板生成)显示正确,但我在检索数据时遇到问题(由于明显的原因,最终数据不是实体).Simple字段可以成功地用检索到的数据填充(通过将字段名作为键传递数据选项),但我无法使嵌套的集合字段工作-即使在传递数据后,集合也不会显示

代码中负责此操作的部分如下所示:

elseif ($fieldType === 'collection'){
              $subfields = $field->getSubfields();
              $formBuilder->add('subfields', 'collection', array(
                'type' => new FormCollectionType($subfields),
                'allow_add' => true,
                'mapped' => false,
                'allow_delete' => true,
                'by_reference' => false,
                'options' => array('required' => false, 'data' => array(
                    array('title' => 'lorem', 'subtitle' => 'ipsum'),
                    array('title' => 'lorem', 'subtitle' => 'ipsum')
FormCollectionType也是使用$subfields参数动态生成的。在这种情况下,集合中的每个项目都有两个字段-标题和副标题。根据我传递的数据,应该会显示两个已填写的输入组,但不会显示任何内容。您仍然可以使用JS添加新的(空)组


请告知。

好的,结果是需要传递的数据不是:

'options' => array('required' => false, 'data' => array(
                array('title' => 'lorem', 'subtitle' => 'ipsum'),
                array('title' => 'lorem', 'subtitle' => 'ipsum')
但是:


我知道这是旧的,但如果集合是另一个实体,而数据库中已经有这些条目,该怎么办?如何提取这些实体并预设数据
'data' => array(
                array('title' => 'lorem', 'subtitle' => 'ipsum'),
                array('title' => 'lorem', 'subtitle' => 'ipsum')