我创建了一个名为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',
)
你能告诉我出错的地方吗?
答案 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
,它将为您处理所有事情。