如何使用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;
}
}
由于
答案 0 :(得分:2)
您已经为MyForm类重写了loadDefaultDecorators方法,但您必须为每个元素类执行此操作。 在这种情况下,您将看不到任何表单HTML代码,因为您没有提供特定于表单的装饰器,如Form,FormElements等。我在上面描述的所有这些装饰器都是在Zend_Form类的loadDefaultDecorators方法中定义的。 尝试在loadDefaultDecorators方法的开头添加以下行:
parent::loadDefaultDecorators();
这将调用Zend_Form类的对应方法。