2011-05-18 68 views
2

我在CakePHP的應用主控制器下面的代碼:CakePHP的檢查引薦

public function index() 
{ 
    if($this->referer(array('controller' => 'users', 'action' => 'logout'))) 
    { 
     $this->layout = 'splash'; 

     $this->set('title_for_layout', 'Goodbye'); 

     $this->render('loggedout'); 
    } 
    else 
    { 
     if (!$this->Auth->user()) 
     { 
      $this->layout = 'splash'; 

      $this->set('title_for_layout', 'Welcome to CreatHive'); 

      $this->render('splash'); 

     } 
     else 
     { 

      $this->layout = 'home'; 

      $this->set('title_for_layout', 'CreatHive'); 

      $this->render('index'); 

     } 
    } 
} 

基本上它說,如果用戶從退出動作來展現loggedout看法,但如果沒有,然後檢查他們是否已經登錄並顯示啓動頁面或主頁。

但是它總是顯示登出視圖無論是登錄或沒有,甚至從退出行動即將(甚至潮紅會議/餅乾等不工作)

任何想法的問題是什麼的代碼看起來好像沒什麼問題:/

感謝

+0

'debug($ this-> referer())的輸出是什麼;'? – generalopinion 2011-05-18 19:37:15

回答

4

變化:

if($this->referer(array('controller' => 'users', 'action' => 'logout'))) 

要:

if($this->referer() == Router::url(array('controller' => 'users', 'action' => 'logout'))) 
+0

導致此錯誤:'致命的錯誤:調用未定義的方法HomeController :: url()在/Users/cameron/Sites/thehive/app/controllers/home_controller.php行18# – Cameron 2011-05-18 14:47:39

+0

對不起,應該是路由器:: url(),而不是$ this-> url()。答案已更新。 – Tyler 2011-05-18 14:52:34

+0

雖然我註銷時不顯示註銷視圖嗎? – Cameron 2011-05-18 15:19:12