我在ZF2中使用Flash Messenger遇到了一个很奇怪的问题。我在一个非常简单的场景中使用它,在注册后保存“注册完成”消息并重定向到登录页面并显示该消息,但是该消息从未由Flash Messenger发送。
在 Controller 注册操作中:
$this->flashMessenger()->addMessage('Registration complete');
return $this->redirect()->toRoute('default', array('controller' => 'user', 'action' => 'login'));
在 Controller 登录操作中:
$flashMessenger = $this->flashMessenger();
$mes = $flashMessenger->hasMessages();
$cur = $flashMessenger->hasCurrentMessages();
$ mes和$ cur都是错误的(我只是想确保都尝试过)。任何人都可以阐明这一点吗?
我正在使用ZF 2.2.2和PHP 5.3.14。 session 保存处理程序正在使用dbtable适配器,我尝试禁用此功能,并将flashmessenger session 管理器设置为使用相同的dbtable保存处理程序,但没有结果。
最佳答案
要使用FlashMessenger
Controller 插件,您需要在 Controller 中添加以下内容:
<?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();
}
}
将以下内容添加到
thankyou.phtml
View 模板中:<?php
if ($this->flashMessenger()->hasMessages()) {
echo '<div class="alert alert-info">';
$messages = $this->flashMessenger()->getMessages();
foreach($messages as $message) {
echo $message;
}
echo '</div>';
}
?>
关于php - Zend Framework 2 Flash Messenger不返回任何消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21549913/