2011-08-15 24 views
0

這裏是我的控制器一些代碼:Zend的動作控制器無視我的_forward()

if($user->save()) { 
    $this->_flash->setNamespace('success')->addMessage('Record deleted'); 
    $this->_logger->info('About to log out'); 
    $this->_forward('logout'); 
    $this->_logger->info('Should Not Get To this line');    
} else { 

出於某種原因,在_forward()動作不執行。在我的日誌文件中出現了'不應該到此行'這個短語,如果我在logout()方法中放置了一些日誌代碼,它永遠不會被調用。離奇。

我正在使用ACL來保護控制器,但它不會執行任何異常操作。顯然,我的用戶有適當的授權,否則他們會首先到達代碼中的這一點。

我沒有做我的引導有什麼異常......

任何想法?謝謝...

回答

3

manual

被處理的當前操作後,)在_forward(請求的動作將被執行

調用_forward()不立即停止目前的執行行動。

對我來說,看起來你實際上是在重定向之後。試着用

return $this->_helper->redirector('logout'); 
0

你需要向前後

if($user->save()) { 
    $this->_flash->setNamespace('success')->addMessage('Record deleted'); 
    $this->_logger->info('About to log out'); 
    $this->_forward('logout'); 
    return; 
    $this->_logger->info('Should Not Get To this line');    
} else { 
返回免去您 _forward()
相關問題