0

Zend でデコレータを使用する方法がまったくわかりません。

デコレーターなしで基本的な単純なフォームを作成する場合、ラベルは DT に入り、要素は DD に入ります。そして、それらはすべて次から次へと進みます。

では、各ラベルとそれに対応する要素も div 内に入るようにするにはどうすればよいでしょうか?

本当にありがとう!こうしゃ

4

1 に答える 1

0

デコレーター大好き!しかし、それらをマスターするのは非常に困難です。質問が簡単なのは良いことです。

私は自分のフォームでこの関数を使用しています

public function getElementDecorators()
{
    return array(
        'ViewHelper',
        'Errors',
        array('Description', array('tag' => 'p', 'class' => 'description')),
        array('HtmlTag', array('tag' => 'dd', 'id'  => array('callback' => array(get_class($this), 'resolveElementId')))),
        array('Label', array('tag' => 'dt')),
        array(array('elementContainer' => 'HtmlTag'), array('tag' => 'div', 'class' => 'element-container')),
    );
}

次に、フォーム内の各要素について、そのように作成します。

$this->addElement('Text', 'wordup', array(
    'label' => 'Put your words here',
    'attribs' => array('class' => 'textbox-fancy'),
    'decorators' => $this->getElementDecorators()
));
于 2013-02-08T03:10:55.610 に答える