Zend Framework模块访问

时间:2012-02-22 18:13:14

标签: zend-framework

我创建了一个名为Admin的模块,并通过zend工具创建了一个控制器Admin。并在bootstrap中添加了以下代码

protected function _initAutoLoad ()
{
    $front = Zend_Controller_Front::getInstance();
    $front->setControllerDirectory(array(
                            'default' => APPLICATION_PATH . '/default/controllers' ,
                            'Admin'   => APPLICATION_PATH . '/Admin/controllers'
                                  ));
    $autoloader = Zend_Loader_Autoloader::getInstance();
    $autoloader->suppressNotFoundWarnings(false);
}

但是如果我正在访问http://localhost/zf_hemr/Admin网址,我会收到“未找到”错误。如果我访问“http:// localhost / zf_hemr / public / Admin”url我收到以下错误:

Page not found
Exception information:

Message: Invalid controller specified (index)
Stack trace:

#0 D:\web\www\zf_hemr\library\Zend\Controller\Front.php(954):     Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http),     Object(Zend_Controller_Response_Http))
#1 D:\web\www\zf_hemr\library\Zend\Application\Bootstrap\Bootstrap.php(97): Zend_Controller_Front->dispatch()
#2 D:\web\www\zf_hemr\library\Zend\Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#3 D:\web\www\zf_hemr\public\index.php(26): Zend_Application->run()
#4 {main}  

Request Parameters:

array (
  'module' => 'Admin',
  'controller' => 'index',
  'action' => 'index',
)  

你能告诉我出错的地方吗?

1 个答案:

答案 0 :(得分:0)

您可能忘记在路径中添加/modules

$front->setControllerDirectory(array(
                              'default' => APPLICATION_PATH . '/modules/default/controllers',
                              'Admin'   => APPLICATION_PATH . '/modules/Admin/controllers'
                              ));

但是,你不应该这样做,对我这样做的正确方法是在configuration.ini文件中添加这些行:

resources.modules[] =
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.prefixDefaultModule = false

第一行启用资源插件 Zend_Application_Resource_Modules,它将为您处理所有事情。