在ZF2表单的输入字段周围添加div

时间:2018-11-03 22:03:14

标签: forms zend-framework2

我正在使用Zend Framework 2创建一个表单。我正在使用Form类来定义如下表单元素:

class PropertyForm extends Form
{
    public function __construct($name=null)
    {
    ...

        $this->add(array(
            'name' => 'zip',
            'type' => 'Text',
            'required' => false,
            'options' => array(
                'label' => 'Zip Code',
            ),
            'attributes' => array(
                'id' => 'zip',
                'class' => 'form-control',
            ),
        )); 

    ...
    }
}

在视图中,我使用以下代码显示此表单元素:

<div class="form-group"><?php echo $this->formRow($form->get('zip')); ?></div>

这将产生以下HTML输出:

<div class="form-group">
    <label for="zip">Zip Code</label>
    <input type="text" name="zip" id="zip" class="form-control" value="">
</div>

我想要实现的是在输入字段周围也有<div class="my-class">。因此,所需的HTML输出为:

<div class="form-group">
    <label for="zip">Zip Code</label>
    <div class="my-class">
        <input type="text" name="zip" id="zip" class="form-control" value="">
    </div>
</div>

我该如何实现?

1 个答案:

答案 0 :(得分:1)

您可以通过两个不同的调用来获得label和元素本身:

对于标签:

<?php echo $this->formLabel($yourForm->get('your_element')); ?>

对于元素:

<?php echo $this->formSelect($yourForm->get('your_element_select')); ?>
<?php echo $this->formText($yourForm->get('your_element_text')); ?>
<?php echo $this->formRadio($yourForm->get('your_element_radio')); ?>

因此,以您的示例为例,

<div class="form-group">
    <?php echo $this->formLabel($form->get('zip')); ?>
    <div class="my-class">
        <?php echo $this->formText($form->get('zip')); ?>
    </div>
</div>