按照添加的顺序遍历表单元素

Ruf*_*nus 5 zend-framework2 zend-form2

Zend Form 2构建了Fieldsets中的所有元素.(Zend\Form\Form扩展Fieldset - Form :: add调用parent :: add)

如果我只是将元素添加到表单中,我可以通过它获取它们$form->getElements()如果我使用字段集我可以通过它

foreach($form->getFieldsets() as $fieldset){
  $elements = $fieldset->getElements();
}
Run Code Online (Sandbox Code Playgroud)

但想象一下我添加一些隐藏字段,然后是字段集,最后添加一个提交按钮的表单.

如何以正确的顺序获取元素/字段集?

这背后的原因,我正在研究一个视图帮助器,它允许我通过简单的调用视图助手来打印表单.

我不想通过调用调用每个表单元素formRow() (我知道Form2背后的概念 - 将逻辑与表示分离)

任何帮助深表感谢.TIA

And*_*den 9

您可以执行以下操作,以按照添加到表单的顺序获取元素和字段集:

/* $form is an instance of \Zend\Form\Form */
foreach ($form as $element) {

    // check if it's a form element or a fieldset etc.
    // and recursively iterate over elements of fieldsets etc.
}
Run Code Online (Sandbox Code Playgroud)