使用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. Zend Framework - Flashmessenger - 只有一個字符
- 2. Zend的FlashMessenger
- 3. Zend Framework中的鏈接錯誤消息
- 4. 帶Zend的FlashMessenger - 如何向其他用戶發送消息?
- 5. Zend Framework - POP3 - 檢索消息源
- 6. Zend Framework的輸入驗證消息
- 7. 在Zend Framework中對HTML電子郵件進行渲染操作
- 8. zend框架FlashMessenger問題
- 9. Zend Framework自定義驗證類錯誤消息
- 10. 如何在Zend Framework中的對象Zend_Validate_EmailAddress中編寫自定義錯誤消息
- 11. 如何在JBoss ESB中對消息進行分組?
- 12. 如何在zend framework 2中自定義驗證消息?
- 13. Zend Framework:如何取消設置Zend_Db_Table_Rowset對象中的數據行
- 14. PHP(Zend Framework)在Rackspace Cloud站點上進行代碼分析
- 15. Zend Framework中的分頁
- 16. 消費使用Zend Framework 2
- 17. 通過PHP Zend Framework進行YouTube註釋
- 18. 使用Zend Framework進行RAW SQL查詢
- 19. 如何向Zend Framework 2中的表單添加錯誤消息?
- 20. 在lxml中對錶格進行分類
- 21. 在MATLAB中對物品進行分類
- 22. 在Zend Framework中找不到的類
- 23. Rabbitmq消息與基於Java API的消息ID進行區分
- 24. 在Zend Framework中生成數據對象
- 25. Zend Framework - 如何對所有控制器進行preDispatch?
- 26. 在Zend Framework中使用zend_auth_adapter進行facebook登錄
- 27. ASP。在PHP中使用Zend Framework進行.NET緩存等效
- 28. Zend Framework vs Zend Framework 2
- 29. Text2Vec使用插入符號SVM警告消息進行分類
- 30. 在Zend Framework中獲取選定的行
完成此操作的另一種方法可以在這裏找到:http://stackoverflow.com/questions/3950637/type-of-flash-messenger-in-zend – Gardner 2013-02-06 13:41:24