2013-04-09 112 views
1

我像「庫/ MYLIB /表格/裝飾/ Lalala.php」設置默認元素裝飾

現在的應用程序路徑寫自己的裝飾想使用它像$element->addDecorator('Lalala'); ,但得到的錯誤:

Plugin by name 'Filechoose' was not found in the registry; used paths: Zend_Form_Decorator_: Zend/Form/Decorator/

如何設置默認元素裝飾器路徑。

回答

1

假設你的裝飾類myLib_Form_Decorator_Lalala存儲在文件library/myLib/Form/Decorator/Lalala.php,那麼我們可以如下做到這一點:

在表單級別:

$form->addElementPrefixPath(APPLICATION_PATH . '/../library/myLib/Form/Decorator', 'myLib_Form_Decorator_', Zend_Form::DECORATOR); 

在單元級:

$elt->addPrefixPath(APPLICATION_PATH . '/../library/myLib/Form/Decorator', 'myLib_Form_Decorator_', Zend_Form::DECORATOR); 
+0

我每次都必須這樣做?有什麼辦法可以把它放到配置文件或bootstrap中嗎? – Subdigger 2013-04-09 10:58:18

+0

我從來沒有找到一種方法在Bootstrap上做到這一點。所以我通常做的是爲我的表單創建一個基類並將其放入構造函數中(不要忘記調用'parent :: __ construct()',它最終會調用'init()',其中通常您的元素枚舉存在)。然後,我的所有子表單都會自動設置元素前綴路徑。 – 2013-04-09 11:06:28

+0

然後確定。 =(希望看到「是的,你可以」=) – Subdigger 2013-04-09 11:16:06

相關問題