Zend_Form - loadDefaultDecorators ::如何使用loadDefaultDecorators函数删除装饰器标签+ HtmlTag?

时间:2010-07-18 12:55:59

标签: zend-framework zend-form

如何使用loadDefaultDecorators函数删除装饰器标签+ HtmlTag?

我的解决方案 - 请告诉我我的实施是否运作良好或需要修改

class MyForm extend Zend_Form{

    function init(){
     //create form elements
     ......................................
    }

public function loadDefaultDecorators() {
  if ($this->loadDefaultDecoratorsIsDisabled ()) {
   return $this;
  }
  foreach($this->getElements()as $elem){
   $elem->removeDecorator('Label')
        ->removeDecorator('HtmlTag');
        }
  return $this;
  }
}

由于

1 个答案:

答案 0 :(得分:2)

您已经为MyForm类重写了loadDefaultDecorators方法,但您必须为每个元素类执行此操作。 在这种情况下,您将看不到任何表单HTML代码,因为您没有提供特定于表单的装饰器,如Form,FormElements等。我在上面描述的所有这些装饰器都是在Zend_Form类的loadDefaultDecorators方法中定义的。 尝试在loadDefaultDecorators方法的开头添加以下行:

parent::loadDefaultDecorators();

这将调用Zend_Form类的对应方法。