1

私は次のような構造を持っています:

/application
.....
--/modules
----/structure
------/controllers
--------/indexController.php
------/forms
--------/Department.php //here class Structure_Form_Department extends Zend_Form

indexController.phpで

...
public function saveAction()
    {
        $request = $this->getRequest();
        $form = new Structure_Form_Department();//<-- error
....
}

と私はエラーが発生します

致命的なエラー:クラス'Structure_Form_Department'が見つかりません

しようとするとzf enable form module-受け取る:

An Error Has Occurred                         
 This project already has forms enabled.

これは設定のような問題だと思います...しかし、私が何をする必要があるのか​​理解していません...

編集1

ここで良い解決策を見つけました

しかし、何らかの方法で、zendは_init...デフォルトのbootstrap.php...から関数の実行を繰り返し開始します。

4

2 に答える 2

12

私も数ヶ月前に同様の問題に直面していました、そして私は次のコードを書くことによって解決策を得ました:

application.iniで

autoloadernamespaces[] = "Structure_"

Bootstrap.phpで

protected function _initAutoload()
    {
        $autoloader=new Zend_Application_Module_Autoloader(array(
                'namespace' => 'Structure',
                'basePath' => dirname(__FILE__).DIRECTORY_SEPARATOR.'Structure'
            ));
    }

そしてindex.phpで

set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    realpath(APPLICATION_PATH),
    get_include_path(),
)));

うまくいかない場合はお知らせください。

于 2011-08-04T08:33:40.433 に答える
0

Application前に追加するとうまくいくと思いStructure_Form_Departmentます。

すなわち

Application_Structure_Form_Department()

または、config.iniでfromからへの指示を行うこともできappnamespace = "Application"ますappnamespace = ''

githubにいくつかのコードがあります。モジュールがどのように機能するかを確認できます。

$contactForm = new Contact_Form_Contact();

フォームの名前は

class contact_Form_Contact extends Zend_Form

github上のすべてのコード。見てみな 。

https://github.com/harikt/blog/blob/master/application/modules/contact/controllers/IndexController.php

https://github.com/harikt/blog/blob/master/application/modules/contact/forms/Contact.php

于 2011-08-03T13:16:36.157 に答える