0

zend form要素を装飾してラベルをtrに、要素をtrに配置する方法

<tr><td><label>name</label></td></tr>
<tr><td><input type="text"/></td></tr>

私はこのコードを使用します

$this->setElementDecorators(
    array('ViewHelper',
    array(array('data'=>'HtmlTag'),array('tag'=>'td','class'=>'element_td')),
    array('Label',array('tag'=>"td")),
    array(array('row'=>'HtmlTag'),array('tag'=>'tr'))
    )
);

しかし、それは同じ行にラベルと要素を生成します[tr]私は行にラベルと別の行の要素が欲しいですこれを行う方法は??

4

1 に答える 1

4

デコレータでこれを行うのは少し難しいですが、それは可能です。互いに分離したタグ内で2つの個別のコンポーネントをラップする必要があるため、最初にHtmlTagデコレータを使用して一方をラップし、その後、その後にデコレータを追加して(またはオプションで他の方法で)もう一方をビルドする必要があります。周りと前に):

$this->setElementDecorators(array(
    array('Label'),
    array(array('labelTd'=>'HtmlTag'),array('tag'=>'td','class'=>'label_td')),
    array(array('labelTr'=>'HtmlTag'),array('tag'=>'tr','class'=>'label_tr')),
    array(array('elementOpenTr'=>'HtmlTag'),array('tag'=>'tr','class'=>'element_tr','openOnly'=>true,'placement'=>'append')),
    array(array('elementOpenTd'=>'HtmlTag'),array('tag'=>'td','class'=>'element_td','openOnly'=>true,'placement'=>'append')),
    array('ViewHelper', array('placement' => 'append')),
    array(array('elementCloseTd'=>'HtmlTag'),array('tag'=>'td','closeOnly'=>true,'placement'=>'append')),
    array(array('elementCloseTr'=>'HtmlTag'),array('tag'=>'tr','closeOnly'=>true,'placement'=>'append'))
));
于 2011-04-11T09:36:49.547 に答える