Zend framework 如何在一个Zend_表单中将两个按钮放在一行中

Zend framework 如何在一个Zend_表单中将两个按钮放在一行中,zend-framework,layout,zend-form,decorator,Zend Framework,Layout,Zend Form,Decorator,我认为,在web应用程序中使用具有 编辑删除 按钮在它们下面。但ZF将一个按钮置于另一个按钮之下,这是违反直觉的。 我想ViewScript装饰器可以帮助我完全覆盖按钮html 但是,如何跨其他表单执行此操作,以避免重复? 可能是我太复杂了,我应该以某种方式粘贴html代码而不是按钮元素对象?通读Zend Developer Zone上的本教程: .可以在表单的构造函数中修改按钮装饰器。 按钮应在不带HtmlTag装饰器的情况下保留,要禁用由于dt/dd标记而位于单独行上,HtmlTag装饰器可

我认为,在web应用程序中使用具有 编辑删除 按钮在它们下面。但ZF将一个按钮置于另一个按钮之下,这是违反直觉的。 我想ViewScript装饰器可以帮助我完全覆盖按钮html

但是,如何跨其他表单执行此操作,以避免重复?
可能是我太复杂了,我应该以某种方式粘贴html代码而不是按钮元素对象?

通读Zend Developer Zone上的本教程:


.

可以在表单的构造函数中修改按钮装饰器。 按钮应在不带HtmlTag装饰器的情况下保留要禁用由于dt/dd标记而位于单独行上,HtmlTag装饰器可按如下方式移除:

$buttonobject->setDecorators(array(
    'ViewHelper',
    //array('HtmlTag', array('tag' => 'dd')),
    //array('Label', array('tag' => 'dt')),         
));
评论仅用于演示目的。 此外,出于样式设计目的,按钮可分组到字段集中:

$this->addDisplayGroup(数组('delete','submit'),'buttons')

可选site.css代码:

#fieldset-buttons { border: none; }

这是我在我自己的表单类中使用的代码,我的所有表单都从中继承。主要技巧是仅在按钮本身上使用ViewHelper装饰器,并将按钮粘贴在使用DtDdWrapper的displaygroup中,并将按钮包装在
中以获得额外的样式选项

  protected $_buttons = array();

  /**
   * Sets a list of buttons - Buttons will be standard submits, or in the getJson() version
   * they are removed from display - but stuck in the json in the .buttons property
   *
   * $buttons = array('save'=>'Save This Thing', 'cancel'=>'Cancel') as an example
   *
   * @param array $buttons 
   * @return void
   * @author Corey Frang
   */
  public function setButtons($buttons)
  {
    $this->_buttons = $buttons;
    foreach ($buttons as $name => $label)
    {
      $this->addElement('submit', $name, array(
          'label'=>$label,
          'class'=>$name,
          'decorators'=>array('ViewHelper'),
        ));
    }
    $this->addDisplayGroup(array_keys($this->_buttons),'buttons', array(
      'decorators'=>array(
        'FormElements',
        array('HtmlTag', array('tag'=>'div', 'class'=>'buttons')),
        'DtDdWrapper'
      )
    ));
  }

  // Example from form::init()
  $this->setButtons(array('save'=>'Save Entry', 'delete'=>'Delete Entry'));