2011-06-29 5 views
3

テーブルにいくつかのフォーム要素を配置する必要があります。 私のHtmlTagデコレータは、デコレータを追加する順序を変更しても、入力フィールドのみをラップし、ラベルはラップしないという問題があります。 ラベルはタグの未処理です。助言がありますか?ZendFramework - 私のHtmlTagデコレータのタグで私のラベルも同様にラップする方法

    $questionElement->addDecorators(array(
        array('HtmlTag', array('tag'=>'tr')), 
        array('Label',  array('tag'=>'td')), 
       )); 
+0

ガットこれは、ラベルに 'placedment' => 'prepend'を追加して解決しました。私のコードがループしていたので、前の要素のラベルが私が不平を言っていたと思います。 –

+2

答えに完全なソースコードを載せて、それを正しいものとしてマークしてください。この質問を読んだ人を助けるでしょう。ありがとう。 – emaillenin

+0

完全なソースは必要ありませんが、ループが間違いではないとわかりました。ここでの問題は、デコレータの別名を付けなければならないということでした。デフォルトの名前は、少なくとも私の設定ではデフォルトの順序で追加されているように見えるので、並べ替えの選択肢はありませんでした。 –

答えて

1

先日、このことについてblog postと書いています。 スタイリングの目的のために、私はある要素の先頭に開口部を、もう一方の要素の終わりに終了タグを置く必要がありました。 Zend Frameworkのガイドラインはこれを詳しく説明していません。あなたは以下のだろうオープニングdivタグを追加する要素で

:第二の要素で

$open_element->addDecorator(array(
    array('openDiv' =>'HtmlTag'), 
    array('tag' => 'div', 'openOnly' => true) 
)); 

を、あなたは終了タグを追加することをお勧めします:

$close_element->addDecorator(array(
    array('closeDiv' =>'HtmlTag'), 
    array('tag' => 'div', 'closeOnly' => true) 
)); 
+0

正しいです。 –