【问题标题】:Zend Framework Module accessZend 框架模块访问
【发布时间】:2012-02-22 18:13:13
【问题描述】:

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

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 url,我会收到“未找到”错误。如果我正在访问“http://localhost/zf_hemr/public/Admin”网址,我会收到以下错误:

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',
)  

你能告诉我哪里出错了吗?

【问题讨论】:

  • 能否请您添加您的项目目录结构?
  • 当然。 skydrive.live.com/…请看上面的url查看结构。

标签: zend-framework


【解决方案1】:

您可能忘记在路径中添加/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 将为您处理一切。

【讨论】:

  • 我已经添加了 fontController。 application.ini 如下: 请查看 url 以查看 application.ini 和 bootstrap.php 文件。 skydrive.live.com/…
  • 在你的 application.ini 中添加我刚才写的内容。
  • 我已经添加了这些行。我仍然没有在浏览器中加载模块。
  • 我已经解决了这个问题。问题是我没有为管理模块添加控制器索引。感谢您的支持
猜你喜欢
  • 1970-01-01
  • 2012-04-09
  • 1970-01-01
  • 1970-01-01
  • 2011-01-19
  • 1970-01-01
  • 2011-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多