我有一个像这样的结构:
/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
....
}
得到error
致命错误:Structure_Form_Department类未找到
当尝试zf enable form module
-接收:
An Error Has Occurred
This project already has forms enabled.
我认为这是一个类似配置的问题…但不明白我需要做什么…
编辑1
在这里找到了好的解决方案
但是由于某种原因zend开始从默认的bootstrap.php....重复执行_init...
函数
几个月前我也遇到了类似的问题,我通过编写以下代码得到了解决方案:
在application.iniautoloadernamespaces[] = "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(),
)));
请让我知道,如果它不工作.....
我想在Structure_Form_Department
前面添加Application
会起作用。
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