遵循Pro Zend Framework技术,我在modules目录中创建了一个名为“Contact”的模块。这是目录结构。
|_application |_Configs |_application.ini |_controllers |_modules |_Contact |_Controllers |_IndexController |_models |_views Bootstrap.php Bootstrap.php
应用程序目录中的Bootstrap文件具有_initAutoload()函数,如下所示:
protected function _initAutoLoad(){ $autoLoader = Zend_Loader_Autoloader::getInstance(); $autoLoader->registerNamespace('CMS_'); $resourceLoader = new Zend_Loader_Autoloader_Resource( array('basePath' => APPLICATION_PATH , 'namespace' => '' , 'resourceTypes' => array('form' => array('path' => 'forms/' , 'namespace' => 'Form_') , 'model' => array('path' => 'models/' , 'namespace' => 'Model_')))); return $autoLoader; }
模块中的Bootstrap文件是:
class Contact_Bootstrap extends Zend_Application_Module_Bootstrap { protected function _initAutoLoad(){ $autoloader=new Zend_Application_Module_Autoloader(array('namespace'=>'Contact_', 'basePath'=>dirname(__FILE__),)); return $autoLoader; } }
config文件夹中的application.ini文件包含以下行,用于设置模块“contact”:
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" resources.modules[] = "" contact.resources.frontController.defaultControllerName = "index"
我已经设置了一个应用程序错误控制器,它有一个getmessage()函数来显示错误。当我尝试加载http://localhost/zf_cms/public/contact时,它会出错:
getMessage() : Invalid controller specified (index)
modules-> contact->控制器中索引控制器的名称是Contact_IndexController。我还为索引控制器创建了一个视图。
请帮我找到错误,如果我错过了一些信息,请告诉我。 谢谢。
答案 0 :(得分:1)
将模块和控制器目录重命名为小写。从你的帖子看来,你没有在你的IndexController中添加.php扩展名。