2010-04-27 66 views
0

我有一個zend窗體,我正在初始化如下:如何在使用Zend_Form時將插件添加到註冊表中?

$ form = new Form_XYZ();

我有這種形式的顯示組,我打電話是這樣的:

$form->addDisplayGroup($generalSettingsGroup, 
          'general', 
          array(
           'legend' => 'General', 
           'disableDefaultDecorators' => true, 
           'decorators' => array(
                'FormElements', 
                'FieldSet', 
                array('HtmlTag', 
                  array('tag' => 'div', 'class' => 'general') 
                  ) 
                ) 
           ) 
          ); 

我得到這個錯誤:

ArrayObject Object 
    (
     [exception] => Zend_Loader_PluginLoader_Exception Object 
     (
      [message:protected] => Plugin by name 'FieldSet' was not found in the registry; used paths:Zend_Form_Decorator_: Zend/Form/Decorator/ 
      [string:private] => 
      [code:protected] => 0 
      [file:protected] => /usr/share/pear/PEAR/Zend/Loader/PluginLoader.php 
      [line:protected] => 406 
      [trace:private] => Array 
      ................... 

我怎樣才能字段集插件添加到註冊表?我使用默認的Zend_Form Fieldset裝飾器。

回答

3

在文件Zend/Form/DisplayGroup.php中,FieldSet是'Fieldset'(小寫字母'S')。 我將其更改爲Fieldset,它工作正常。

+0

(與Zend 1.11測試)作爲文檔中明確規定[ZendForm(HTTP工作/framework.zend.com/manual/en/zend.form.forms.html#zend.form.forms.custom)是帶小寫字母'S'的字段集。我在我的製作網站上遇到了與Debian服務器相同的錯誤。我的開發人員環境(Win,OSX)沒有任何問題,因爲此操作系統不區分大小寫。謝謝,這真的很有幫助。 – mbenegas 2012-03-09 02:59:38

2

然而,有一些奇怪的地方:當包含幾個子表單並將Decorator設置爲包含Fieldset時,如果您在某些表單上錯誤地使用FieldSet(大寫字母S),則沒有問題。

似乎一個小寫字母可以解決所有其他問題。 /:

此外,您還可以加載Zend公司(Zend_Form_Decorator_Fieldset)字段集類,並擁有一切與資本S.

相關問題