zend_form配置问题

时间:2011-08-03 12:27:10

标签: zend-framework zend-config

我有如下结构:

/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

找到了很好的解决方案here

但是从某种程度上说,zend开始重复执行默认bootstrap.php中的_init...函数....

2 个答案:

答案 0 :(得分: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(),
)));

如果不起作用,请告诉我.....

答案 1 :(得分:0)

我想在Application前面添加Structure_Form_Department会有效。

Application_Structure_Form_Department()

或者您可能想在config.ini中告知从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