Zend: Персонализирани декоратори за етикети

В момента имам следния код за генериране на елемент на формуляр (текстово поле):

$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>

Защо етикетът не приема класа на етикета, въпреки че му казах да използва класа на етикета в дефиницията на декоратора? Правя ли нещо нередно тук?

Благодаря!


person Kevin    schedule 29.01.2013    source източник
comment
Къде е зададен класът етикет в декоратора? Преминали сте само tag и placement опции   -  person Phil    schedule 29.01.2013


Отговори (1)


Код за рендиране на етикет на елемент

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

person Nilesh Gupta    schedule 13.02.2013