我有如下结构:
/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...
函数....
答案 0 :(得分:12)
几个月前我也遇到了类似的问题,我通过编写以下代码得到了解决方案:
autoloadernamespaces[] = "Structure_"
protected function _initAutoload()
{
$autoloader=new Zend_Application_Module_Autoloader(array(
'namespace' => 'Structure',
'basePath' => dirname(__FILE__).DIRECTORY_SEPARATOR.'Structure'
));
}
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/forms/Contact.php