我对子集合的值没有正确补水有疑问。我将 zend 框架 3 与学说 2 一起使用。
由于我必须复制大量代码,因此我将描述我在做什么,如果需要,我将使用代码进行更新。
我们有以下内容:
- VillaForm 是一个表单元素
- VillaFieldset 是一个 Fieldset 元素,是 VillaForm 的基本字段集
FacilityCategoriesFieldset 是一个 Fieldset,用于 VillaFieldset 中的 Collection 元素
$this->add([ 'type' => 'Zend\Form\Element\Collection', 'name' => 'facilityCategories', 'options' => [ 'count' => 1, 'allow_add' => true, 'allow_remove' => true, 'create_new_objects' => true, 'target_element' => [ 'type' => FacilityCategoryFieldset::class, ], ], ]);
设施字段集,它是一个字段集,用于 FacilityCategoriesFieldset 中的集合元素
$this->add([ 'type' => 'Zend\Form\Element\Collection', 'name' => 'facilities', 'options' => [ 'count' => 1, 'allow_add' => true, 'allow_remove' => true, 'create_new_objects' => true, 'target_element' => [ 'type' => FacilityFieldset::class, ], ], ]);
所以从上面看,我们有
VillaForm contains VillaFieldset that contains Collection of FacilityCategoriesFieldset which contains a Collection of FacilitiesFieldset
假设我们在实际的表单页面上有这个例子。
- Row A of FacilityCategoriesFieldset
- Row 1 of FacilitiesFieldset
- Row 2 of FacilitiesFieldset
- Row 3 of FacilitiesFieldset
- Row B of FacilityCategoriesFieldset
- Row x of FacilitiesFieldset
- Row y of FacilitiesFieldset
- Row z of FacilitiesFieldset
我的问题是,表单提交后,虽然发布的数据是正确的,但水化后的结果会是这样的:
- Row A of FacilityCategoriesFieldset
- Row x of FacilitiesFieldset
- Row y of FacilitiesFieldset
- Row z of FacilitiesFieldset
- Row B of FacilityCategoriesFieldset
- Row x of FacilitiesFieldset
- Row y of FacilitiesFieldset
- Row z of FacilitiesFieldset
FacilityCategoriesFieldset 的最后一行的FacilityFieldset 行用于FacilityFieldset 的所有行。
这只发生在一个包含另一个集合的集合的字段集时。有没有人暗示我可能做错了什么?如果您需要,我会给您任何其他信息/代码。
非常感谢。