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