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

几个月前我也遇到了类似的问题,我通过编写以下代码得到了解决方案:

在应用程序.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会起作用。

IE

Application_Structure_Form_Department()

或者您可能想在 config.ini 中说明 from appnamespace = "Application"to 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 回答