Вы можете просто добавить подформы в подформы: -
$form = new Application_Form_Test();
$subForm1 = new Application_Form_TestSubForm();
$subForm2 = new Application_Form_TestSubForm();
$subForm1->addSubForm($subForm2, 'sub2');
$form->addSubForm($subForm1, 'sub1');
$this->view->form = $form;
При отправке значения подчиненной формы будут доступны в массивах в массиве $_POST
. $value=$_POST['sub1']['sub2']['name']
например.
http://framework.zend.com/manual/en/zend.form.forms.html#zend.form.forms.subforms
Чтобы распечатать или получить доступ к элементам в подформах, у вас есть несколько вариантов: -
Если $subForm1
имеет элемент, объявленный так: -
$email = new Zend_Form_Element_Text('email');
Тогда поле email
можно отобразить в виде следующим образом: -
<?php echo $this->element->sub1->email; ?>
Помните, что на элементы ссылаются их имена , а не переменные, которые вы используете для их объявления.
Также помните, что $this->element
ссылается на экземпляр Zend_Form
, поэтому у вас есть все эти методы доступны. Это означает, что вы можете сделать это: -
<?php
$form = $this->element;
$formElements = $form->getElements();
?>