在我的控制器內的對象,我有一個postDispatch鞏固我FlashMessenger消息:獲取鑑於從Zend的控制器插件
public function postDispatch()
{
$messages = $this->_helper->getHelper ('FlashMessenger')
->getMessages();
if ($this->_helper->getHelper ('FlashMessenger')
->hasCurrentMessages())
{
$messages = array_merge ($messages, $this->_helper->getHelper ('FlashMessenger')
->getCurrentMessages());
$this->_helper->getHelper ('FlashMessenger')
->clearCurrentMessages();
}
$this->view->alert = $messages;
}
我想使之成爲一個控制器插件此。
更新:我意識到爲什麼我需要這個 - 我想通過JSON傳遞我的JSON消息時被JSON上下文調用。除非將消息添加到View對象,否則我不會收到消息。
我能得到消息到一個數組,但我不知道如何將它們傳遞給視圖:
class Plugin_FlashMessenger extends Zend_Controller_Plugin_Abstract
{
public function postDispatch($request)
{
$flashmessenger = Zend_Controller_Action_HelperBroker::getStaticHelper ('FlashMessenger');
$messages = $flashmessenger->getMessages();
if ($flashmessenger->hasCurrentMessages())
{
$messages = array_merge ($messages, $flashmessenger->getCurrentMessages());
$flashmessenger->clearCurrentMessages();
}
// THIS LINE IS WRONG. HOW DO I SEND $messages TO THE VIEW?
$this->view->alert = $messages;
}
}
獎金的問題 - 這是實現這一目標的正確方法?謝謝!
FlashMessenger在下一頁上呈現警報。所以如果你想發送頁面到這個頁面,你需要做一些邏輯(獲得之前的消息,獲得當前的消息,將它們合併)。所以我應該把邏輯放在佈局/視圖中?這當然簡單得多,但我認爲在視圖腳本中使用類似邏輯是不好的做法? – Corey 2011-02-05 20:28:38
@Corey,提到的本體Flash Messenger視圖助手已經爲你處理了getMessages()/ getCurrentMessages()邏輯。 – 2011-02-07 12:04:03