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)
| 归档时间: |
|
| 查看次数: |
8725 次 |
| 最近记录: |