1

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

4

1 回答 1

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();
?>
于 2011-12-10T03:52:48.367 回答