Zend framework2 自定义ZF2中表单集合的字段集输出

Zend framework2 自定义ZF2中表单集合的字段集输出,zend-framework2,formcollection,zend-form2,Zend Framework2,Formcollection,Zend Form2,我已经在ZF2中正确地设置了一个表单,它包括几个元素和一个集合,其中包含一个用户可以复制的字段集。这一切都很好,但我需要更多地控制字段集的渲染方式,也就是说,我需要在字段集中的一些元素之间添加其他内容,而不是一个接一个地输出它们 我不是ZF2方面的专家,但通过研究,我似乎了解您可以在formCollection中声明自定义fieldsetHelper,但是: 我无法做到这一点;我试图扩展FormCollection类,并添加protected$fieldsetHelper='myFieldset

我已经在ZF2中正确地设置了一个表单,它包括几个元素和一个集合,其中包含一个用户可以复制的字段集。这一切都很好,但我需要更多地控制字段集的渲染方式,也就是说,我需要在字段集中的一些元素之间添加其他内容,而不是一个接一个地输出它们

我不是ZF2方面的专家,但通过研究,我似乎了解您可以在formCollection中声明自定义fieldsetHelper,但是:

  • 我无法做到这一点;我试图扩展FormCollection类,并添加
    protected$fieldsetHelper='myFieldsetHelper',也在模块配置中声明,但我得到:
  • 致命错误:调用未定义的函数myFieldsetHelper()

  • 我熟悉扩展FormRow helper,但我不知道应该如何编写fieldset helper(我只需要在某些元素之间添加额外的内容),并且在web上找不到任何示例

  • 是否需要帮助?

    您可以使用其他视图帮助程序自定义视图脚本中的表单布局,如FormLabel、FormText等

    请看我的答案

    编辑

    您还可以循环查看脚本中的所有集合元素并单独渲染

    <?php
    foreach ($this->form->get('collection') as $fieldset) {
        echo $this->formText($fieldset->get('elementName'));
    }
    ?>
    

    但是我们讨论的是集合元素,所以在视图中我只有
    $this->formCollection($this->form->get('myCollection'))
    ,它呈现字段集和模板以复制它们。我可以自定义单个帮助器,这样集合中的元素也会相应地呈现,但我需要做的是在字段集的单个元素之间添加一些内容,而不仅仅是编辑它们。