подчиненная форма внутри подчиненной формы - PullRequest
1 голос
/ 10 декабря 2011

Я работаю над моделью, используя Zend Form.У меня есть подчиненная форма с именем $ product_item.Я хотел бы добавить несколько его экземпляров в другую подчиненную форму, которая называется $ items.Как бы я поступил так?Я не нахожу справочное руководство Zend особенно полезным.

1 Ответ

3 голосов
/ 10 декабря 2011

Вы можете просто добавить подформы в подформы: -

$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();
?>
...