dongshaoxiong0012
2010-04-27 18:22
浏览 35
已采纳

如何在使用Zend_Form时向注册表添加插件?

I have a zend form that I'm initializing as follows:

$form = new Form_XYZ();

I have a display group in that form, which I'm calling like this:

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

I get this error :

    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
             ...................

How can I add the FieldSet plugin to the registry? I'm using the default Zend_Form Fieldset decorator.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • douque9815 2010-04-27 18:39
    已采纳

    In the file Zend/Form/DisplayGroup.php, FieldSet was 'Fieldset' (lowercase 'S'). I changed it to Fieldset, and it works fine.

    点赞 评论
  • ds11111111111111111 2012-12-06 14:14

    Yet, there is something strange : when including several subforms and setting Decorators to contain Fieldset, if you mistake to FieldSet (with capital S) on some of them, there's no problem.

    It seems that one lowercase solve the problem for all the others.

    Also, you can load the FieldSet class from Zend (Zend_Form_Decorator_Fieldset) and have everything works with capital S.

    (tested with Zend 1.11)

    点赞 评论

相关推荐 更多相似问题