2014-01-21 45 views
0

OK,另一個用於CakePHP的忍者今天.. 這就是: 我有一個登錄/註銷系統中實現.. 我在AppController中使用$組件ATTR,和使用驗證配置鍵設置loginRedirect和logoutRedirect。該代碼如下所示:CakePHP的路由器/ loginRedirect註銷後不工作

public $components = array(
    'DebugKit.Toolbar', 
    'Session', 
    'Auth' => array(
     'loginRedirect' => array( 
      'controller' => 'posts', 
      'action' => 'index' 
     ), 
     'logoutRedirect' => array( 
      'controller' => 'users', 
      'action' => 'login' 
     ), 
     'authorize' => array('Controller') 
    ) 
); 

logout操作是這樣的:

public function logout() { 
     $this->Session->setFlash(__('You are now logged out.')); 
     return $this->redirect($this->Auth->logout()); 
    } 

這裏的交易..每當我到T註銷他上面的logoutRedirect,然後登錄,用戶不會重定向到帖子/索引莫名其妙..因爲我已經得到了DebugKit設置,我試圖檢查發生了什麼事情,在蛋糕請求參數內,控制器被設置爲'頁面',動作是'顯示'。這導致我嘗試通過在地址欄中手動輸入註銷操作URL來註銷。並猜測是什麼?!它的作品,並將用戶重定向到帖子/索引頁面。 所以,任何人都知道我可以如何解決這個問題,我有?或者可以將我指向一個很好的來源,從中我可以理解到底是什麼以及爲什麼會發生這種情況!感謝

+0

你是否提供任何公共頁面? – XuDing

+0

您是從AppController粘貼的代碼嗎? (public $ components = ...) – cornelb

+0

@cornelb是的代碼來自AppController .. Gaurav在他的答案中實際發佈的內容適用於我,但它看起來像一個黑客..它破壞了使用Auth組件的目的。我錯了嗎?謝謝 – LogixMaster

回答

-1

試試這個

$這個 - > Auth->註銷(); $ this-> redirect(some url);