Zend Form 2构建了Fieldsets中的所有元素。 (Zend \ Form \ Form扩展Fieldset - Form :: add调用parent :: add)
如果我只是将元素添加到表单中,我可以通过$form->getElements()
获取它们如果我使用字段集我可以通过
foreach($form->getFieldsets() as $fieldset){
$elements = $fieldset->getElements();
}
但想象一下我添加一些隐藏字段,然后是字段集,最后是一个提交按钮的表单。
如何以正确的顺序获取元素/字段集?
这背后的原因,我正在开发一个视图帮助器,它允许我通过简单的调用方式打印表单。
我不想通过调用formRow()
来调用每个表单元素
(我知道Form2背后的概念 - 将逻辑与表示分离)
非常感谢任何帮助。 TIA
答案 0 :(得分: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.
}