为单个模块创建模块化结构后,将阻止url显示控制器的名称。
一切都适用于默认
site.con/foo/index/action/
我希望我能写成
site.com/foo/action/
是IndexController唯一的模块控制器。
我已经测试了几种解决方案但是没有用。作为第一个使用ZF的应用程序,我不太清楚要采取的步骤。
答案 0 :(得分:2)
您需要Zend Routes。
在
中定义路线bootstrap.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"
解决了吗?