Как я могу добавить плагин в реестр при использовании Zend_Form? - PullRequest
0 голосов
/ 27 апреля 2010

У меня есть Zend-форма, которую я инициализирую следующим образом:

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

Как добавить плагин FieldSet в реестр? Я использую декоратор Zend_Form Fieldset по умолчанию.

Ответы [ 2 ]

3 голосов
/ 27 апреля 2010

В файле Zend / Form / DisplayGroup.php FieldSet был 'Fieldset' (строчная 'S') Я изменил его на Fieldset, и он отлично работает.

2 голосов
/ 06 декабря 2012

Тем не менее, есть кое-что странное: при включении нескольких подчиненных форм и установке декораторов для содержания Fieldset, если вы ошиблись с FieldSet (с заглавной буквой S) на некоторых из них, проблем нет.

Кажется, что одна строчная буква решает проблему для всех остальных.

Кроме того, вы можете загрузить класс FieldSet из Zend (Zend_Form_Decorator_Fieldset), и все будет работать с заглавной буквы S.

(протестировано с Zend 1.11)

...