2010-04-27 63 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.

相关问题