子表单内的子表单

发布于 2024-12-20 23:45:09 字数 115 浏览 3 评论 0原文

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

I'm working on a model using Zend Form. I have a subform called $product_item. I would like to add multiple instances of it to another subform called $items. How would I go about doing that? I'm not finding the Zend reference guide particularly helpful.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

意中人 2024-12-27 23:45:09

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

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

You can just add sub-forms to sub-forms:-

$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;

On submission the subform values will be available in arrays in the $_POST array. $value=$_POST['sub1']['sub2']['name'] for example.

http://framework.zend.com/manual/en/zend.form.forms.html#zend.form.forms.subforms

To print or access elements in sub forms you have several options:-

If $subForm1 has an element declared thus:-

$email = new Zend_Form_Element_Text('email');

Then the email field can be rendered in the view like this:-

<?php echo $this->element->sub1->email; ?>

Remember that the elements are referenced by their names not by the variables you use to declare them.

Also, remember that $this->element is referencing an instance of Zend_Form so you have all of those methods available. That means you can do this:-

<?php
    $form = $this->element;
    $formElements = $form->getElements();
?>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文