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

Add div around input field in ZF2 form

我正在使用 Zend Framework 2 创建一个表单。我正在使用表单 class 来定义这样的表单元素:

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>

我怎样才能做到这一点?

您可以通过两个不同的调用获取标签和元素本身:

对于标签:

<?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>