如何使用装饰器将多个 div 或字段集添加到 zend_form?

Posted

技术标签:

【中文标题】如何使用装饰器将多个 div 或字段集添加到 zend_form?【英文标题】:How can I add multiple divs or fieldsets to a zend_form using decorators? 【发布时间】:2011-02-19 06:45:38 【问题描述】:

我正在尝试在我的 zend_form 显示组中生成这个 html 层次结构:

    <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 中使用相同的装饰器两次,你可以使用 setDecorators 数组语法传递 array(array('alias'=&gt;'Decorator'), $options)。此外,如果您传递 decorators 选项,则不需要使用 disableDefaultDecorators

$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')),  
    )
  )
);

【讨论】:

以上是关于如何使用装饰器将多个 div 或字段集添加到 zend_form?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用装饰器将参数绑定到静态方法函数?

使用多个装饰器将 Type-GraphQL 与 Typegoose 相结合

SQL多个字段如何去重

如何装饰班级?

在 Zend Framework 中,如何使用装饰器将表单元素包装在标签中?

Python functools.partial - 如何使用静态装饰器将其应用于类方法