是否有辦法在Zend Framework2中使用zend子表單。當我在互聯網上進行搜索時,我找到了很多示例,展示瞭如何使用Zend子表單,但是使用Zend Framework1。如何在Zend Framework2中使用子表單
如果有人有一個鏈接/例子,可以通過一個基本的例子,將是很好的。
任何信息表示讚賞。
是否有辦法在Zend Framework2中使用zend子表單。當我在互聯網上進行搜索時,我找到了很多示例,展示瞭如何使用Zend子表單,但是使用Zend Framework1。如何在Zend Framework2中使用子表單
如果有人有一個鏈接/例子,可以通過一個基本的例子,將是很好的。
任何信息表示讚賞。
由於Zend \ Form是樹形結構,您可以使用表單名稱將另一個表單添加到表單中。這些是這樣的:
$form = new \Zend\Form\Form();
$form->add(array(
'name' => 'username',
'type' => 'Zend\Form\Element\Text',
));
$subForm = new \Zend\Form\Form();
$subForm->setName('subform');
$subForm->add(array(
'name' => 'email',
'type' => 'Zend\Form\Element\Text',
));
$form->add($subForm);
$form->prepare();
$helper = new Zend\Form\View\Helper\FormText();
echo $helper($form->get('username')); //<input type="text" name="username" value="">
echo $helper($form->get('subform')->get('email')); //<input type="text" name="subform[email]" value="">
注意到,「子窗體」輸入名稱將作爲前綴自動被添加表單名稱。
我一直在使用它幾個小時,並且在我的理解中,zf1子表單函數是通過使用嵌套字段集在zf2中解決的。
\Zend\Form\Fieldset
也是\Zend\Form\Form
的父類。
以前的答案似乎是正確的我,但如果你喜歡保持獨立的類形式和窗體,請閱讀本:
http://zf2.readthedocs.org/en/latest/modules/zend.form.collections.html
忽略實體和水化的東西,如果你現在不感興趣,並看看CreateProduct
類,它是一種使用FieldSet ProductFieldset
作爲子窗體的窗體。在渲染時,子窗體字段將被命名爲喜歡
<input ...name="product[el1]" ... >
(其中product
是子窗體的名稱)。 和$形式 - >的getData()將返回
array('product'=>array(...))
注意:您需要調用$form->prepare()
;在渲染之前,或者嵌套將不會被處理。