Zend Framework儿童系列不能保湿

问题描述 投票:0回答:1

我有一个问题,儿童收藏品的价值没有得到适当的补充。我正在使用带有教义2的zend框架3。

由于我需要复制很多代码,因此我将描述我正在做的事情,如果需要,我将使用代码进行更新。

我们有以下内容:

  • VillaForm是一个Form元素
  • 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, ], ], ]);
  • FacilitiesFieldset是一个Fieldset,用于Facility Categories Fieldset中的Collection元素 qazxsw poi

所以从上面看我们有

$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

FacilityCategoriesFieldset最后一行的FacilitiesFieldset行用于FacilitiesFieldset的所有行。

仅当具有带有另一个集合的集合的fieldset时才会发生这种情况。有没有人暗示我可能做错了什么?如果您需要,我会给你任何其他信息/代码。

非常感谢。

doctrine-orm zend-framework2 zend-form zend-framework3 hydration
1个回答
1
投票

您对- 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 的实施略有偏差。您不应将Collection的类型指定为FQCN,而应指定实际对象(Fieldset)。

试试这个:

Collection
© www.soinside.com 2019 - 2024. All rights reserved.