1

是否可以使用 Routes ID 重定向到控制器内?

例如,我使用登录和注销的 id 预定义登录和注销 URL。在我的控制器中,我确定用户需要注销,我可以使用路由 ID 将他们重定向到该路由吗?

引导程序

$router->addRoute('logout',new Zend_Controller_Router_Route('logout', array('module' => 'user', 'controller' => 'index', 'action' => 'logout')));
$router->addRoute('login', new Zend_Controller_Router_Route('login', array('module' => 'user', 'controller' => 'index', 'action' => 'login')));

控制器

return $this->_redirect('login');

目前上述方法不起作用,我必须使用 /login (也就是路由的基本 URL)。

4

2 回答 2

1

我最近也有类似的需求,我解决的方法是使用路由器组装url,然后执行重定向。

$redirectUrl = Zend_Controller_Front::getInstance()->getRouter()->assemble($userParams, $routeName);
$this->_redirect($redirectUrl);

Zend_Controller_Router_Interface ::assemble

于 2012-08-31T21:04:22.737 回答
0

从 Zend 框架 1.8

$route = new Zend_Controller_Router_Route(
                                           'index/:ident',
                                            array(
                                                     'module' => 'user'
                                                     'controller' => 'index',
                                                     'action' => 'login'
                                                  ),
                                             array(
                                            // match only digits
                                                    'ident' => '\d+'
                                                   )
                                            );
于 2012-08-31T14:10:44.470 回答