Php 如何添加一个“;新行“;在ZF2表单元素之后?

Php 如何添加一个“;新行“;在ZF2表单元素之后?,php,css,zend-framework2,Php,Css,Zend Framework2,使用ZF2,我试图在表单元素之间放置或类似的元素。据我所知,ZF1有一些类似于“装饰器”的东西,这些东西已经不在ZF2中了。但是,ZF2没有$form->addBr()元素,这正是我所需要的 以下是我在视图中呈现窗体的方式: <?php echo $this->form($this->form);?> 当前问题: 当我希望表单元素每行位于新行时,表单元素在一行上渲染 问题 当我想要ZF2一次性渲染整个表单时,就像我在这里尝试做的那样(最好不要看到逐行渲染表单的代码),我

使用ZF2,我试图在表单元素之间放置

或类似的元素。据我所知,ZF1有一些类似于“装饰器”的东西,这些东西已经不在ZF2中了。但是,ZF2没有
$form->addBr()
元素,这正是我所需要的

以下是我在视图中呈现窗体的方式:

<?php echo $this->form($this->form);?>
当前问题:

当我希望表单元素每行位于新行时,表单元素在一行上渲染

问题

当我想要ZF2一次性渲染整个表单时,就像我在这里尝试做的那样(最好不要看到逐行渲染表单的代码),我如何才能使其能够在新行上放置新表单元素

我对任何解决方案都持开放态度——无论是编程ZF2解决方案还是CSS解决方案(如果可能的话),或者是我想不出的其他解决方案。我只希望表单渲染时元素显示在新行上,而不是显示在单行上

ZF2以如下方式呈现HTML:


传奇
检查
价值

您可以使用CSS执行此操作,也可以覆盖
formRow()
帮助程序(form()帮助程序使用的)以输出所需的标记

我创建了一个简单的模块,它将表单行帮助器覆盖到输出div(使用适当的样式类):-可以随意使用这个模块,也可以复制方法并定制以满足您的需要。我的将为您提供如下标记:

<div id="some_element" class="form-row form-row-text">
    <label><span>Value</span>
        <input name="name[text]" value="123" type="text">
    </label>
</div>

价值

如果您想推出自己的类似解决方案,这是帮助程序代码:

您可以使用CSS来实现这一点,也可以覆盖
formRow()
帮助程序(form()帮助程序使用它)来输出所需的标记

我创建了一个简单的模块,它将表单行帮助器覆盖到输出div(使用适当的样式类):-可以随意使用这个模块,也可以复制方法并定制以满足您的需要。我的将为您提供如下标记:

<div id="some_element" class="form-row form-row-text">
    <label><span>Value</span>
        <input name="name[text]" value="123" type="text">
    </label>
</div>

价值

如果您想推出自己的类似解决方案,以下是帮助代码:

我能够做到这一点——基本上是复制的,并从以下答案中获得了一些帮助:

我删除了只会把我弄得一团糟的
FieldSet
,然后使用一个循环遍历表单元素,在我想要的地方修改

,在每个元素之后。到此为止

<?php
/**
 * inside view template
 *
 * @var $this \Zend\View\Renderer\PhpRenderer
 * @var $form \Zend\Form\Form
 */
$form = $this->form;
?>
<fieldset>
    <legend>Legend</legend>
    <?php
    echo $this->form()->openTag($form);
    foreach ($form as $element)
        $formContent .= $this->formrow($element) . "<br/>"; //note the "BR"

    echo $formContent;
    echo $this->form()->closeTag();

    ?>
</fieldset>

传奇

我能够做到这一点——基本上是复制了这个答案并从中得到了一些帮助:

我删除了只会把我弄得一团糟的
FieldSet
,然后使用一个循环遍历表单元素,在我想要的地方修改

,在每个元素之后。到此为止

<?php
/**
 * inside view template
 *
 * @var $this \Zend\View\Renderer\PhpRenderer
 * @var $form \Zend\Form\Form
 */
$form = $this->form;
?>
<fieldset>
    <legend>Legend</legend>
    <?php
    echo $this->form()->openTag($form);
    foreach ($form as $element)
        $formContent .= $this->formrow($element) . "<br/>"; //note the "BR"

    echo $formContent;
    echo $this->form()->closeTag();

    ?>
</fieldset>

传奇

叹息。。。想一想,也许我应该在视图中采用“一行一行”的方法,有点像这里。。。考虑一下,也许我应该在视图中采用“一行一行”的方法,有点像这里