http://getbootstrap.com/css/#forms
从 getbootstrap.com 复制简单的电子邮件输入元素建议我们按以下方式格式化HTML:
<div class="form-group">
<label for="exampleInputEmail1">Email address</label>
<input id="exampleInputEmail1" class="form-control" type="email" placeholder="Email">
</div>
上面我们有一个&lt; label&gt; 标记,在其文字内容“电子邮件地址”后直接关闭。
我现在想使用Zend Framework创建相同的表单组。
模块/ MyApp的/ SRC / MyModule的/窗体/ MyForm.php
namespace MyModule\Form;
use Zend\Form\Form;
class MyModuleForm extends Form {
public function __construct($name = null)
{
$this->add(array(
'name' => 'email_address',
'type' => 'Email',
'options' => array(
'label' => 'Email address',
),
'attributes' => array(
'class' => 'form-control',
'placeholder' => 'Email'
)
));
<div class="form-group">
<label>
<span>Email address</span>
<input class="form-control" type="email" placeholder="Email" id="exampleInputEmail1">
</label>
</div>
在上面的HTML中,您可以看到Zend 不关闭&lt; label&gt; 标记。相反,&lt; label&gt; 会对其子级进行封装。
如何更改Zend渲染的工作方式?
答案 0 :(得分:0)
我假设您使用ZF2 FormRow视图助手在视图脚本中呈现表单元素,例如$this->formRow($this->form->get('email_address'));
要以不同方式呈现它,您需要使用以下视图助手
FormLabel
FORMTEXT
FormElementErrors
例如,如果要渲染为定义列表,则可以使用类似
的内容<dl class="zend_form">
<dt><?php echo $this->formLabel($this->form->get('email_address')); ?></dt>
<dd><?php echo $this->formText($this->form->get('email_address')); ?>
<?php echo $this->formElementErrors($this->form->get('email_address')); ?></dd>
</dl>
我希望这能指出你正确的方向