Zend framework2 如何在Zend Framework2中使用子窗体
有没有办法在zend Framework2中使用zend子窗体。当我在互联网上搜索时,我发现了许多示例,展示了如何使用zend子表单,但使用zend Framework1 如果有人有一个链接/示例,可以浏览一个基本示例,那就太好了Zend framework2 如何在Zend Framework2中使用子窗体,zend-framework2,subforms,Zend Framework2,Subforms,有没有办法在zend Framework2中使用zend子窗体。当我在互联网上搜索时,我发现了许多示例,展示了如何使用zend子表单,但使用zend Framework1 如果有人有一个链接/示例,可以浏览一个基本示例,那就太好了 欢迎提供任何信息。因为Zend\Form是树形结构,所以您可以使用表单名称在表单中添加另一个表单。例如: $form = new \Zend\Form\Form(); $form->add(array( 'name' => 'username',
欢迎提供任何信息。因为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="">
请注意,子表单输入名称将是add form name as prefix automatic。因为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="">
请注意,子表单输入名称将是add form name as prefix automatic。我已经使用它几个小时了,据我所知,zf1子表单功能在zf2中通过使用嵌套字段集来解决 \Zend\Form\Fieldset也是\Zend\Form\Form的父类 前面的答案对我来说似乎是正确的,但如果您希望将窗体和子窗体保留在单独的类中,请阅读以下内容: 如果您现在不感兴趣,请忽略实体和其他内容,看看CreateProduct类,它是一个将FieldSet ProductFieldset用作子表单的表单。在渲染时,子窗体字段将命名为
<input ...name="product[el1]" ... >
注意:您需要调用$form->prepare;在渲染之前,否则嵌套将不会被处理。我已经使用它几个小时了,据我所知,zf1子窗体函数在zf2中通过使用嵌套字段集来解决 \Zend\Form\Fieldset也是\Zend\Form\Form的父类 前面的答案对我来说似乎是正确的,但如果您希望将窗体和子窗体保留在单独的类中,请阅读以下内容: 如果您现在不感兴趣,请忽略实体和其他内容,看看CreateProduct类,它是一个将FieldSet ProductFieldset用作子表单的表单。在渲染时,子窗体字段将命名为
<input ...name="product[el1]" ... >
注意:您需要调用$form->prepare;渲染之前,否则将不处理嵌套