子表单中的子表单

时间:2011-12-10 01:21:10

标签: zend-framework zend-form zend-form-sub-form

我正在使用Zend Form开发模型。我有一个名为$ product_item的子表单。我想将它的多个实例添加到另一个名为$ items的子表单中。我该怎么做呢?我没有找到Zend参考指南特别有帮助。

1 个答案:

答案 0 :(得分:3)

您只需将子表单添加到子表单中: -

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