为单个模块创建模块化结构后会阻止 url 出现控制器的名称。
一切正常
site.con/foo/index/action/
我希望我能写成
site.com/foo/action/
IndexController 是该模块的唯一控制器。
我已经测试了几种解决方案,但都不起作用。作为 ZF 的第一个应用程序,我不太清楚要采取的步骤。
为单个模块创建模块化结构后会阻止 url 出现控制器的名称。
一切正常
site.con/foo/index/action/
我希望我能写成
site.com/foo/action/
IndexController 是该模块的唯一控制器。
我已经测试了几种解决方案,但都不起作用。作为 ZF 的第一个应用程序,我不太清楚要采取的步骤。
你需要Zend Routes。
定义你的路线
引导程序.php
打开您的 bootstrap.php 并输入以下内容:
function _initRoutes() {
$front_controller = Zend_Controller_Front::getInstance();
$router = $front_controller->getRouter();
$router->addRoute('foo-action', new Zend_Controller_Router_Route(
'<foo module name>/<action name>', array('module' => 'foo', 'controller' => 'index', 'action' => '<action-name>')
));
}
PS:工作/没工作?在评论中提及,如果不起作用,请给出模块、控制器和操作的正确名称。
编辑:
如何在 application.ini 中设置默认控制器/模块
routes.index.type = "Zend_Controller_Router_Route"
routes.index.route = "/"
routes.index.defaults.module = "<module name>"
routes.index.defaults.controller = "index"
routes.index.defaults.action = "index"
解决了吗?