【问题标题】:How to access controller in zend module如何访问zend模块中的控制器
【发布时间】:2012-05-08 01:56:39
【问题描述】:

我的zend应用程序最初是这样设置的:

应用程序 - 控制器 - 模型 - 查看

现在我想将其设置为使用模块结构,因此我将其更改为: 应用 - 模块 - 默认 - 控制器 - 模型 - 看法 - 测试 - 控制器 - 模型 - 看法 除了将所有文件移动到正确的结构之外,我只需将以下行添加到配置文件中: resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 资源.modules[] = "" 并为每个模块添加引导文件。

由于我将所有当前控制器移至默认模块,因此我可以正常运行应用程序。但是,我无法访问新测试模块中的任何新控制器。我错过了什么吗?我必须更改配置或引导程序中的任何内容吗?

例如,我在名为 TestController 的测试模块中创建了一个新控制器,当我转到 localhost/test/test 时,出现错误:“EXCEPTION_NO_CONTROLLER”。

【问题讨论】:

    标签: zend-framework module routing


    【解决方案1】:

    也许检查你的模块引导路径

        class Transfer_Bootstrap extends Zend_Application_Module_Bootstrap
        {
    
        public function _initModuleRoutes()
        {
            $this->bootstrap('FrontController');
            $frontController = $this->getResource('FrontController');
            $router = $frontController->getRouter();
    
            $route = new Zend_Controller_Router_Route(
                'modulename/:action/*',
                array(
                        'module' => 'modulename',
                        'controller' => 'modulecontroller',
                        'action' => 'index'
                )
            );
            $router->addRoute('routename', $route);
    
            return $router;
        }
    

    【讨论】:

    • 我将此函数添加到模块 bookstrap 文件中,但我仍然收到相同的错误“指定的控制器无效”。似乎它确实识别模块,但不识别控制器。
    猜你喜欢
    • 2011-07-11
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    相关资源
    最近更新 更多