zend框架中的模块没有加载索引控制器

时间:2012-04-14 05:22:08

标签: zend-framework

遵循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。我还为索引控制器创建了一个视图。

请帮我找到错误,如果我错过了一些信息,请告诉我。 谢谢。

1 个答案:

答案 0 :(得分:1)

将模块和控制器目录重命名为小写。从你的帖子看来,你没有在你的IndexController中添加.php扩展名。