1

我还没有经常使用 Zend Router,所以不确定这有多难或容易,但我认为 Zend 很灵活,所以它必须有一种方法可以轻松地做到这一点。

所以我创建了一个Cont具有 2 个动作的控制器actoneacttwo. 这自然给了我

//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控制器,所以我只想给出该路径的外观。

4

2 回答 2

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'
    )
));
于 2010-10-02T17:32:38.960 回答
2

如果您可以使您的Cont控制器成为可能会成功的默认控制器。IIRC 这是在 Zend_Controller_Dispatcher_Abstract 中,有 setDefaultControllerName() 以及 setDefaultAction() 和 setDefaultModule()。

于 2010-10-02T14:50:08.257 回答