$form = new Zend_Form();
$form->addElement('text', 'fname', array('belongsTo' => 'user'));
我需要知道addElement方法定义在哪里?我搜索了 \ vendor \ ZF2 \ library \ Zend([\ Form])目录但找不到此方法!如果没有这样的方法,那么请帮助我理解上面两行如何工作以及其他阵列配置是什么?这个方法的参数。
编辑:谢谢Crisp。实际上我试图在zf2中创建一个输入数组,如
<input name="val[one]" type="text" />
<input name="val[two]" type="text" />
<input name="val[three]" type="text" />
或者至少......像这样
<input name="val[0]" type="text" />
<input name="val[1]" type="text" />
<input name="val[2]" type="text" />
我找到了一个带有上面代码的示例,但它不能正常工作,因为它是zf1。
答案 0 :(得分:0)
在ZF2中,程序化表单创建已从ZF1更改。没有更多的addElement函数,而是使用$ form-&gt; add($ element);
添加元素在ZF2中创建表单的基本步骤是:
创建表单元素:
use Zend\Form\Element;
use Zend\Form\Form;
$name = new Element('name');
$name->setLabel('Your name');
$name->setAttributes(array(
'type' => 'text'
));
$send = new Element('send');
$send->setValue('Submit');
$send->setAttributes(array(
'type' => 'submit'
));
创建表单:
$form = new Form('contact');
将元素添加到表单:
$form->add($name);
$form->add($send);
但是在ZF2中,另一种方法是使用Factory从阵列配置生成表单:
use Zend\Form\Factory;
$factory = new Factory();
$form = $factory->createForm(array(
'hydrator' => 'Zend\Stdlib\Hydrator\ArraySerializable',
'elements' => array(
array(
'spec' => array(
'name' => 'name',
'options' => array(
'label' => 'Your name',
),
'type' => 'Text',
)
),
array(
'spec' => array(
'name' => 'send',
'type' => 'Submit',
'attributes' => array(
'value' => 'Submit',
),
),
),
),
));
然后从视图中引用表单,并使用表单视图助手进行呈现。
参考文献:
http://framework.zend.com/manual/2.3/en/modules/zend.form.quick-start.html https://zf2.readthedocs.org/en/develop/modules/zend.form.advanced-use-of-forms.html http://akrabat.com/category/zend-framework-2/