是否可以使用路由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)。
答案 0 :(得分:1)
我最近也有类似的要求,我解决它的方法是使用路由器来组装网址,然后执行重定向。
$redirectUrl = Zend_Controller_Front::getInstance()->getRouter()->assemble($userParams, $routeName);
$this->_redirect($redirectUrl);
请参阅Zend_Controller_Router_Interface :: assemble
答案 1 :(得分:0)
来自Zend Framework 1.8
$route = new Zend_Controller_Router_Route(
'index/:ident',
array(
'module' => 'user'
'controller' => 'index',
'action' => 'login'
),
array(
// match only digits
'ident' => '\d+'
)
);