$form = new Zend_Form();
$form->addElement('text', 'fname', array('belongsTo' => 'user'));
我需要知道在哪里定义 addElement 方法?我已经搜索了\vendor\ZF2\library\Zend([\Form](目录,但找不到此方法!如果没有这样的方法,那么请帮助我了解上面的两行是如何工作的,以及这种方法的其他数组和参数是什么。
编辑:谢谢脆。实际上我正在尝试在 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,它不起作用。
在 ZF2 中,编程表单创建已从 ZF1 更改。不再有addElement函数,而是使用$form->add($element(添加一个元素;
在 ZF2 中创建表单的基本步骤如下:
- 创建表单元素
- 创建表单
- 向表单添加元素
创建表单元素:
use ZendFormElement;
use ZendFormForm;
$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 中,另一种方法是使用工厂从数组配置生成表单:
use ZendFormFactory;
$factory = new Factory();
$form = $factory->createForm(array(
'hydrator' => 'ZendStdlibHydratorArraySerializable',
'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.htmlhttps://zf2.readthedocs.org/en/develop/modules/zend.form.advanced-use-of-forms.htmlhttp://akrabat.com/category/zend-framework-2/