Ron の Partial メソッドを試してみたところ、結果は Bootstrap 3 が意図したものではありませんでした。
<form id="tea" name="tea" method="POST" action="/tea/add">
...
<div class="form-group">
<label class="control-label">Brand</label>
<div class="form-control">
<input type="text" value="" name="brand">
</div>
...
ブートストラップ 3 の事前定義されたフォーム スタイルを使用するには、ラッピング要素ではなく、入力要素のフォーム コントロールにスタイルを定義する必要があります。
私の部分的な方法は次のとおりです。
echo $this->form()->openTag($form);
foreach ($form as $element) :?>
<div class="form-group">
<?php
if ($element->getOption('required')) { $req = 'required'; }
$type = $element->getAttribute('type');
$name = $element->getAttribute('name');
$label = $element->getLabel();
?>
<?php if ($name == 'id') { ?>
<div class="hidden"><?php echo $this->formElement($element); ?></div>
<?php } else if ($name == 'submit') { ?>
<input class='btn' name='submit' type='submit' value='Add'>
<?php } else if ($label != '') { ?>
<label class="control-label"><?php echo $label ?></label>
<input class='form-control' name='<?php echo $name ?>' type='<?php echo $type ?>'>
<?php } ?>
</div>
<?php
endforeach;
echo $this->form()->closeTag();
さて、結果を得ることができました。
<form id="tea" name="tea" method="POST" action="/tea/add">
...
<div class="form-group">
<label class="control-label">Brand</label>
<input class="form-control" type="text" name="brand">
</div>
...
カスタム スタイルを zf2 フォームにアタッチする方法については、クラス属性を Form 要素に追加する方法について説明しました。
class TeaForm extends Form
{
public function __construct($name = null)
{
// we want to ignore the name passed
parent::__construct('tea');
$this->add(array(
'name' => 'id',
'type' => 'Hidden',
));
$this->add(array(
'name' => 'brand',
'type' => 'Text',
'options' => array(
'label' => 'Brand',
),
/** **define class attribute** **/
'attributes' => array(
'class' => 'form-control',
),
));
....
非常に単純に見えますが、問題は入力要素がラベル要素にラップされることであり、これはまだ Bootstrap 3 が意図したものではありません。
<form id="tea" role="form" name="tea" method="POST" action="/tea/add">
<input type="hidden" value="" name="id">
<label>
<span>Name</span>
<input class="form-control" type="text" value="" name="name">
</label>
...
私の意見では、Partial メソッドは依然として柔軟で軽い選択肢の 1 つです。Tea Box は ZF2 のプラクティスの 1 つです。上記のコードと説明はすべてGibhubから入手できます。