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 :: assemblyを参照してください

于 2012-08-31T21:04:22.737 に答える
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+'
                                                   )
                                            );
于 2012-08-31T14:10:44.470 に答える