Zend Framework 2 Flash Messenger没有返回任何消息

Jai*_*Cee 5 php zend-framework zend-framework2 flashmessenger

我在ZF2中遇到了一个相当奇怪的flash信使问题.我在相当简单的场景中使用它,在注册后保存"注册完成"消息并重定向到登录页面并显示消息但是消息永远不会被flash信使返回.

在控制器注册操作中:

$this->flashMessenger()->addMessage('Registration complete');
return $this->redirect()->toRoute('default', array('controller' => 'user', 'action' => 'login'));
Run Code Online (Sandbox Code Playgroud)

在控制器登录操作中:

$flashMessenger = $this->flashMessenger();
$mes = $flashMessenger->hasMessages();
$cur = $flashMessenger->hasCurrentMessages();
Run Code Online (Sandbox Code Playgroud)

$ mes和$ cur都是假的(我试过两个只是为了确定).任何人都可以对此有所了解吗?

我使用的是ZF 2.2.2和PHP 5.3.14.会话保存处理程序正在使用dbtable适配器,我已经尝试禁用它以及将flashmessenger会话管理器设置为使用相同的dbtable保存处理程序而没有结果.

小智 7

要使用FlashMessenger控制器插件,您需要在控制器中添加以下内容:

<?php 
class IndexController extends AbstractActionController {

  public function indexAction() {

    $this->flashMessenger()->addMessage('Your message');

    return $this->redirect()->toRoute('admin/default', array('controller'=>'index', 'action'=>'thankyou'));
  }

  public function thankyouAction() {

    return new ViewModel();
  }

}
Run Code Online (Sandbox Code Playgroud)

将以下内容添加到thankyou.phtml视图模板:

<?php 

if ($this->flashMessenger()->hasMessages()) {

    echo '<div class="alert alert-info">';

    $messages = $this->flashMessenger()->getMessages();
    foreach($messages as $message) {
        echo $message;
    }

    echo '</div>';
}

?>
Run Code Online (Sandbox Code Playgroud)