0

現在、フォーム要素 (テキスト ボックス) を生成する次のコードがあります。

$this->addElement('text', 'username', array(
        'label' => 'Username',
        //'multiOptions' => $this->getOptions(),
        'filters' => array(
            'StringTrim',
        ),
        'validators' => array(
            array('StringLength', 
                false, 
                array(0, 50)),
        ),
        'decorators' => array(
            array('ViewHelper'), 
            array('Label', array(
                'tag' => 'label',
                'placement' => 'prepend',
                )
            ),
            array('HtmlTag', array(
                'tag' => 'input',
                )
            ),
        ),
    ));

これにより、HTML で次が出力されます。

<dt id="username-label"><label for="username" class="optional">Username</label></dt>
<dd id="username-element">
<input type="text" name="username" id="username" value="" class="input"></dd>

ただし、これを出力することを期待しています:

<dt id="username-label"><label for="username" class="**label**">Username</label></dt>
<dd id="username-element">
<input type="text" name="username" id="username" value="" class="input"></dd>

デコレータ定義でラベル クラスを使用するように指示したにもかかわらず、ラベルがラベル クラスを使用しないのはなぜですか? ここで何か間違ったことをしていますか?

ありがとう!

4

1 に答える 1

0

要素のラベルをレンダリングするためのコード

$ this-> form-> name-> renderLabel();

于 2013-02-13T08:42:50.353 に答える