0
实际上,我正在寻找一种很好的方法来为所有表单元素添加通用装饰器,但同时还可以更改某些装饰器的某些元素非常具体。php Zend Framework - 只有在尚未更改的情况下才更改装饰器
说我想我的所有元素都有新的通用装饰器。我会在我的父类泛型表格类的addElement
方法中这样做。例如,在延长Zend_Form
至极My_Form
类将由My_Form_User
包含实际元素的声明进行扩展,我会碰到这样的:
public function addElement($element, $name = null, $options = null)
{
parent::addElement($element, $name, $options);
if (! is_object($element)) {
$element = $this -> getElement($name);
}
if (is_object($element))
{
$element -> clearDecorators();
$element -> addDecorators($this -> elementDecorators);
}
return $this;
}
现在,我已经对某些形式的一些元素非常具体的需求。所以当我创建元素(在My_Form_User
类中)时,我设置了这些装饰器,但是,当然,当我将它们添加到与addElement
的表单中时,我无法找到一种方法来检查1个装饰器(ViewHelper
或Description
或Label
。 ..)已被修改,以便我不会将其与通用的一个擦除。
有什么想法?谢谢 !
其实如果我做一个getDecorator($ name),我总会有东西作为Zend默认装饰器加载正确吗? – jhuet
那么如果你想保留或删除装饰器,你应该知道哪些,对吧?那么,如果这些是默认或不是,它会有所作为? – hakre
如果我收回我的例子,在My_Form类(不是My_Form_User)中,我不知道哪些元素具有特定的装饰器;这正是我的问题的重点,我想知道的方法:) – jhuet