Как я могу добавить несколько элементов div или fieldset к zend_form, используя декораторы?
Я пытаюсь сгенерировать эту иерархию html в моей группе отображения zend_form:
<div class="settings">
<div class="dashed-outline"> //want to add this div
<fieldset disabledefaultdecorators="1" id="fieldset-settings">
<legend>Cards</legend>
</fieldset>
</div>
</div>
Вот что у меня сейчас:
<div class="settings">
<fieldset disabledefaultdecorators="1" id="fieldset-settings">
<legend>Cards</legend>
</fieldset>
</div>
И это код для выше:
$form->addDisplayGroup($flashcardGroup,
'settings',
array(
'legend' => 'Cards',
'disableDefaultDecorators' => true,
'decorators' => array(
'FormElements',
'Fieldset',
array('HtmlTag',array('tag' => 'div', 'class' => 'settings')),
)
)
);
Как мне добавить дополнительный div здесь?
1 ответ
Решение
Если вы хотите использовать один и тот же декоратор дважды в Zend_Form, вы можете передать array(array('alias'=>'Decorator'), $options)
с использованием setDecorators
Синтаксис массива. Кроме того, вам не нужно использовать disableDefaultDecorators
если вы передаете decorators
вариант
$form->addDisplayGroup($flashcardGroup,
'settings',
array(
'legend' => 'Cards',
'decorators' => array(
'FormElements',
'Fieldset',
// need to alias the HtmlTag decorator so you can use it twice
array(array('Dashed'=>'HtmlTag'), array('tag'=>'div', 'class'=>'dashed-outline')),
array('HtmlTag',array('tag' => 'div', 'class' => 'settings')),
)
)
);