在哪里做addElement方法定义的zend 2?

时间:2014-08-31 08:21:27

标签: zend-framework2

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

1 个答案:

答案 0 :(得分:0)

在ZF2中,程序化表单创建已从ZF1更改。没有更多的addElement函数,而是使用$ form-&gt; add($ element);

添加元素

在ZF2中创建表单的基本步骤是:

  1. 创建表单元素
  2. 创建表单
  3. 将元素添加到表单
  4. 创建表单元素:

    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/