Zend Action Controller忽略了我的_forward()

时间:2011-08-15 04:11:30

标签: zend-framework

以下是我的控制器的一些代码:

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来保护控制器,但它没有做任何异常。显然我的用户有适当的授权,否则他们会首先在代码中达到这一点。

我的Bootstrap中没有做任何异常......

任何想法???感谢...

2 个答案:

答案 0 :(得分:3)

来自manual

  

处理完当前操作后,_forward()中请求的操作将被执行

调用_forward()不会立即停止执行当前操作。

对我来说,看起来你实际上是在重定向之后。尝试用

替换_forward()
return $this->_helper->redirector('logout');

答案 1 :(得分: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 {