0

我正在为我的项目使用模块结构。这是我用来指向默认模块/控制器的代码

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.router.routes.home.defaults.module = main 
resources.router.routes.home.defaults.controller = index
resources.router.routes.home.defaults.action = show

到目前为止,一切都很好。但是如何为每个模块设置默认控制器操作?

4

1 回答 1

1
resources.router.routes.home.defaults.module = main 
resources.router.routes.home.defaults.controller = index
resources.router.routes.home.defaults.action = show

您放入 application.ini 的这部分内容设置了到此模块/控制器/操作的路由,它没有将其设置为默认模块。

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"

此行适用于激活模块,但需要与以下内容配对:

resources.modules[] =

并确保每个模块在扩展的模块根目录中都有一个空的 Bootstrap.php Zend_Application_Module_Bootstrap。这是确保加载和路由正确发生所必需的。

现在要设置默认模块,请输入如下一行:

resources.frontController.defaultmodule = 'default'

进入你的application.ini。

这些行:

resources.frontController.defaultcontrollername = 'index'
resources.frontController.defaultaction = 'index'

设置默认动作和控制器,但他们为每个模块都这样做。我不知道为每个控制器指定默认操作或为每个模块指定默认控制器的方法。
我通常让 index 成为默认控制器和默认操作,如果我想要一些其他操作而不是 index 我只是转发给它:

public function indexAction() {
    $this->+_forward('otherAction');
}

祝你好运。

于 2012-08-04T06:45:13.580 回答