我正在尝试将操作映射到基本URL和默认控制器。
发誓这应该是直接的,甚至是“开箱即用”功能,但是如何使用Zend Framework将默认控制器中的操作映射到基本URL?我对框架很新,所以我希望我只是遗漏了一些明显的东西。
尝试映射:
domain.com/index/my-page到domain.com/my-page
默认不破坏任何其他路线设置。
我可以使用Zend_Router来破解它,但它打破了其他规则,例如/:controller /:action /:module /:controller /:action
注意:/ index / my-page是一个示例url - 我需要它动态地为所有indexController动作工作。
'tharkun'要求的网址映射示例 indexController有方法indexAction和contactAction 需要网址
/index
/index/contact
/
/contact
第二个控制器testController有方法indexAction和monkeyAction 需要网址
/test
/test/index
/test/monkey
基本上 - 如果sys找不到VAR的控制器,那么它会在默认控制器中查找VAR的动作
答案 0 :(得分:2)
默认控制器是IndexController。
(默认)映射的工作原理如下:
/ => IndexController::indexAction
/index => IndexController::indexAction
/index/foo => indexController::fooAction
/foo => FooController::indexAction
因此,添加这样的用户定义路由(优先级低于默认值)
$frontController = Zend_Controller_Front::getInstance();
$router = $frontController->getRouter();
$route = new Zend_Controller_Router_Route(
'/:action',
array(
'controller' => 'index'
)
);
$router->addRoute('user', $route);
这并没有打破我对默认路线的使用。
编辑:正如coffeerings在评论中所说,这将打破非默认控制器的indexAction。