Как добавить атрибут имени класса в родительский тег label с помощью Zend_Form_Decorator?

#zend-framework #zend-form

#zend-фреймворк #zend-form

Вопрос:

Я так старался, но мне не удалось создать для моей формы формат декоратора, подобный приведенному ниже:

 <form>
    <div class="form_wrapper">
        <div class="form_label">
            <!-- {{label}} -->
        </div>
        <div class="form_element">
            <!-- {{element}} -->
        </div>
    </div> <!-- end .form_wrapper -->
    <div class="form_wrapper">
        <div class="form_label">
            <!-- {{label}} -->
        </div>
        <div class="form_element">
            <!-- {{element}} -->
        </div>
    </div> <!-- end .form_wrapper -->
</form>
 

И когда я пытаюсь установить класс form_label для моего decorator :

 array('Label', array('tag' => 'div', 'class' => 'form_label'))
 

Так всегда бывает:

 <div>
    <label class="form_label">Title</label>
</div>
 

Мне нужно переместить form_label класс внутри label тега в родительский элемент: его div тег?

Как я могу это сделать?

Ответ №1:

Попробуйте это для вашего декоратора:

 array(array('data' => 'HtmlTag'), array('tag' => 'div', 'class' => 'form_element')),
array('Label', array('tag' => 'div', 'tagClass'=>'form_label')),
array(array('row' => 'HtmlTag'), array('tag' => 'div', 'class' => 'form_wrapper'))
 

Важная часть:

 'tagClass'=>'form_label'
 

Посмотрите Zend_Form_Decorator_Label::render() , как это работает

Комментарии:

1. Это работает. Можете ли вы сказать мне, зачем мне нужно: array('data' => 'HtmlTag') и array('row' => 'HtmlTag') ?