代码之家  ›  专栏  ›  技术社区  ›  cakan user6364254

在ZF2窗体的输入字段周围添加div

  •  0
  • cakan user6364254  · 技术社区  · 8 年前

    我正在使用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 回复  |  直到 8 年前
        1
  •  1
  •   Ermenegildo    7 年前

    您可以通过两个不同的调用获得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>