我还没有使用Zend路由器,所以不确定这是多么困难或容易,但我认为Zend非常灵活,因此必须有一种方法可以轻松完成。
所以我创建了一个控制器Cont
,其中包含2个操作actone
和acttwo
。这自然给了我
//the default index controller
site.com/
site.com/index/index
//and my controller
site.com/cont/index
site.com/cont/actone
site.com/cont/acttwo
有没有办法可以使用看起来像这样的路径访问actone
控制器中的cont
操作
site.com/actone
我意识到我可以通过创建一个名为Actone
的单独控制器来获得此外观,这将是其index
操作,但此actone
操作在逻辑上属于Cont
控制器所以我想简单介绍一下这条道路。
答案 0 :(得分:4)
您可以创建自定义路线...
通过application.ini - 路由器应用程序资源
resources.router.routes.route_title.route = "/actone"
resources.router.routes.route_title.defaults.controller = "cont"
resources.router.routes.route_title.defaults.action = "actone"
resources.router.routes.route_title.type = "Zend_Controller_Router_Route_Static"
或者直接在路由器上添加一个。
$router = Zend_Controller_Front::getInstance()->getRouter();
$router->addRoute('route_title', new Zend_Controller_Rotuer_Route_Static(
'/actone',
array(
'controller' => 'cont',
'action' => 'actone'
)
));
答案 1 :(得分:2)
如果你可以使你的Cont
控制器成为可能做到这一点的默认控制器。 IIRC这是在Zend_Controller_Dispatcher_Abstract中,有setDefaultControllerName()以及setDefaultAction()和setDefaultModule()。