如何为每个表单元素添加特殊标记?

时间:2013-03-21 10:40:04

标签: zend-framework2 zend-form

我的表格有字段:

$this -> add(
        array(
            'name' => 'firstfield',
            'attributes' => array(
                'type'  => 'text',
                'id' => 'id_firstfield'
            ),
            'options' => array(
                'label' => 'firstfield'
            ),
        )
    );

$this -> add(
        array(
            'name' => 'secondfield',
            'attributes' => array(
                'type'  => 'text',
                'id' => 'id_secondfield'
            ),
            'options' => array(
                'label' => 'secondfield'
            ),
        )
    );

当我使用时:

echo $this->formCollection($form);

在我看来,我得到了:

[...]
<label for="id_firstfield">first field</label>
<input name="firstfield" type="text" id="id_firstfield" value="">
<label for="id_secondfield">second field</label>
<input name="secondfield" type="text" id="id_secondfield" value="">
[...]

但我想得到:

[...]
<div id="divforfirstfield">
    <label for="id_firstfield">first field</label>
    <input name="firstfield" type="text" id="id_firstfield" value="">
</div>
<div id="divforsecondfield">
    <label for="id_secondfield">second field</label>
    <input name="secondfield" type="text" id="id_secondfield" value="">
</div>
[...]

怎么做?

1 个答案:

答案 0 :(得分:3)

使用formCollection()这是不可能的。但是你可以这样做:

<div id="firstid">
    <?php echo $this->formRow($form->get('firstfield')); ?>
</div>
<div id="secondid">
    <?php echo $this->formRow($form->get('secondfield')); ?>
</div>

如果您只想通过一个函数调用来呈现表单,那么您必须使用自己的一个来扩展formCollection()视图助手。