使用FlashMessenger helper在Zend Framework中对最新消息进行分类(警告,成功,错误)的最简单方法是什么?我还希望使用单一方法来检查控制器可能不需要转发请求的消息。目前,我相信这是通过FlashMessenger :: getCurrentMessage()完成的?在Zend Framework中对FlashMessenger消息进行分类
回答
在你控制器,你可以这样做:
$this->_helper->FlashMessenger(
array('error' => 'There was a problem with your form submission.')
);
$this->_helper->FlashMessenger(
array('notice' => 'Notice you forgot to input smth.')
);
在你查看你可以重复这样的通知:
<?php echo $this->flashMessenger('notice'); ?>
而且这样的错误:
<?php echo $this->flashMessenger('error'); ?>
编辑:
检查this link:
...在这里调用常规getMessages()方法将不起作用。这只会返回在实例化FlashMessenger时存储在相应ZendSession名称空间中的消息。由于添加此请求的任何消息当时都不在ZendSession名称空间中(因为FlashMessenger是为了添加消息而实例化的),所以它们不会由getMessages()返回。
仅就此用例而言,FlashMessenger还提供了一个getCurrentMessages()
方法(以及当前方法的相关系列),该方法返回在当前请求上设置的消息。
两个想法。
1 PHPPlaneta
退房PHPlaneta的源代码,由罗伯特·基本:
https://github.com/robertbasic/phpplaneta
他用标准的FlashMessenger动作助手:
$this->_helper->flashMessenger()->addMessage(array('fm-bad' => 'Error occurred')
然后定义一个视图帮助器称为FlashMessenger,以便他可以访问消息。在他的布局或视图脚本,他只是简单地调用:
<?php echo $this->flashMessenger(); ?>
视图助手使用密钥(例如:'fm-bad'
)建立CSS样式的输出消息。
2. PriorityMessenger
退房肖恩PO MacCath - 莫兰优先使者视图助手:
http://emanaton.com/code/php/zendprioritymessenger
我喜欢这个的事情是,这整个保存邮件的业务在下一页加载显示我应该完全在视图内。因此,在您的操作中,在您的重定向之前,您可以使用消息和优先级填充视图助手。然后,在布局或视图脚本中,通过相同的视图帮助程序将这些消息与它们的优先级一起输出。
好的,感谢大家的意见,但我实施了不同的方法。
我已经有延伸化Zend_Controller_Action其中我已经放在共同逻辑跨应用,所以在执行postDispatch()方法我合并了getCurrentMessages和的getMessages到视图可变父控制器。
public function postDispatch()
{
$messages = array_merge(
$this->_helper->flashMessenger->getCurrentMessages(),
$this->_helper->flashMessenger->getMessages()
);
$this->view->messages = count($messages) > 0 ? $messages[0] : array();
}
我通过控制器动作设置消息,如;
$this->_helper->flashMessenger(array('error'=>'This is an error'));
而在我的布局文件中,我使用$ messages变量的条件;
<?php if(count($this->messages) > 0) : ?>
//.. my HTML e.g. key($this->messages) returns 'error'
// current($this->messages) returns 'This is an error'
<?php endif; ?>
这对我很有用,因为邮件被分类并且可以从当前请求中获得,除了下一次重定向。
- 1. flashmessenger不显示新消息
- 2. Zend Framework - Flashmessenger - 只有一个字符
- 3. Zend 2中的FlashMessenger
- 4. Zend的FlashMessenger
- 5. Zend Framework中的链接错误消息
- 6. 带Zend的FlashMessenger - 如何向其他用户发送消息?
- 7. Zend Framework 2 - Doctrine 2错误消息
- 8. Zend Framework的输入验证消息
- 9. Zend Framework - POP3 - 检索消息源
- 10. 在Rebus中对某种消息类型进行串行处理
- 11. Zend Framework 2重定向()与flashMessenger不起作用
- 12. zend框架FlashMessenger问题
- 13. 在Zend Framework中对HTML电子邮件进行渲染操作
- 14. Zend Framework自定义验证类错误消息
- 15. 如何在Zend Framework中的对象Zend_Validate_EmailAddress中编写自定义错误消息
- 16. 如何在JBoss ESB中对消息进行分组?
- 17. 如何在zend framework 2中自定义验证消息?
- 18. 如何在Zend Framework中显示自定义错误消息?
- 19. Zend Framework:如何取消设置Zend_Db_Table_Rowset对象中的数据行
- 20. PHP(Zend Framework)在Rackspace Cloud站点上进行代码分析
- 21. Zend Framework中的分页
- 22. Zend Framework 2 - 分页
- 23. 消费使用Zend Framework 2
- 24. Zend Framework 2 |类型
- 25. 使用Zend Framework进行RAW SQL查询
- 26. 通过PHP Zend Framework进行YouTube注释
- 27. 如何向Zend Framework 2中的表单添加错误消息?
- 28. SQL - 对行进行分类
- 29. 在Sharepoint中对文档进行分类
- 30. 在MATLAB中对物品进行分类
完成此操作的另一种方法可以在这里找到:http://stackoverflow.com/questions/3950637/type-of-flash-messenger-in-zend – Gardner 2013-02-06 13:41:24