5

Zend Form 2 structures all Elements in Fieldsets. (Zend\Form\Form extends Fieldset - Form::add calls parent::add )

If i just add Elements to the Form i can get them via $form->getElements() if i use a fieldset i can get them via

foreach($form->getFieldsets() as $fieldset){
  $elements = $fieldset->getElements();
}

But imagine a form where i add a few hidden fields, then a fieldset, and at last a submit button.

How can i get the elements/fieldsets in their right order ?

Reason behind this, I'm working on a view helper which lets me print forms via a simple call to the view helper.

I don't want to call every form element via a call to formRow() (I know of the concept behind Form2 - separating logic from presentation)

Any help is much appreciated. TIA

4

1 回答 1

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.
}
于 2012-08-30T20:21:01.757 回答