我一直在使用與「彈頭」作爲路由命名參數,例如:CakePHP的反向路由問題
Router::connect('/category/:slug', array('controller'=>'categories', 'action'=>'view'), array('pass'=>array('slug'), 'slug'=>'[a-z0-9\-]+'));
我現在已經跨越了問題迷迷糊糊,因爲我想限制上述路線記錄只有用戶,所以我把這個在我的CategoriesController的beforeFilter()函數:
if(!$this->Auth->loggedIn()) {
$this->Auth->deny('view');
}
現在,如果我去/類別/我的類別(而登出)我會被重定向到我應用程序的登錄頁面,不幸的是我登錄後,我被重定向到/ categories/view/my-category/slug:my-category
這是由於線路AuthComponent.php,在那裏我們有317:
$this->Session->write('Auth.redirect', Router::reverse($request));
如此看來,當我上面的路線上做路由器::反向($請求),它不能正常工作(因爲它認爲「我的類別」應該是一個通過參數和一個命名參數)。
這是我設置此路線的方式的問題,還是它與CakePHP的錯誤?當然,Router :: reverse($ request)應該總是返回我們當前所在的URL?
任何意見讚賞...