【问题标题】:Zend Form - Add a <div> around the input elementZend Form - 在输入元素周围添加一个 <div>
【发布时间】:2023-03-26 21:32:01
【问题描述】:

我正在使用 Zend Framework 2 Form 来呈现我的表单,并使用 Bootstrap 3 来设置它们的样式。 我想使用这里解释的水平表单布局: Bootstrap 3 Forms tutorial

为此,我需要在输入元素周围添加一个带有适当类的 div;在将新元素添加到 Form 类时,有什么简单的方法可以添加这样的 div 吗?到目前为止我的元素:

$this->add(array(
    'name' => 'name',
    'attributes' => array(
        'type' => 'text',
        'id' => 'contactName',
        'maxlength' => '70',
        'placeholder' => 'Your full name.',
        'class' => 'form-control'
    ),
    'options' => array(
        'label' => 'Name: ',
        'label_attributes' => array(
            'class' => 'control-label col-xs-12 col-sm-2'
        )
    ),
));

当我使用&lt;?php echo $this-&gt;formRow($this-&gt;form-&gt;get('name')); ?&gt; 渲染它时,我可以在此处添加任何内容以便在输入元素周围轻松添加&lt;div class="col-xs-12 col-sm-10"&gt;&lt;/div&gt; 吗?

【问题讨论】:

  • 实际上,ZF2 的表单视图助手对 bootstrap 并不友好,并且以 bootstrap 方式渲染各种表单元素需要比您想象的更多的努力。我强烈建议使用ZF2 Twb Module 来完成这项工作。退房this online demo
  • 幸运的是,我发现了如何分别渲染表单元素的不同部分,因此我可以编写一个简单的 View Helper 来解决我的问题。很遗憾听到确认没有更简单的方法可以走。您推荐的模块看起来很有趣,如果我有任何其他类似的问题,我一定会更深入地了解它,谢谢!

标签: twitter-bootstrap-3 zend-framework2 zend-form


【解决方案1】:

我终于设法通过创建自定义 View Helper 解决了这个问题:

public function __invoke($element) {
echo '<div class="form-group">';
echo $this->view->formLabel($element);
echo '<div class="col-xs-12 col-sm-10">' . $this->view->formElement($element) . '</div>';
echo $this->view->formElementErrors($element);
echo '</div>';
}

虽然我仍然想知道是否还有其他更简单的方法可以做到这一点!

【讨论】:

  • 添加一个助手是要走的路。请接受您自己的答案,以免问题继续显示为未回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多