内からビュー・オブジェクトを取得、私は私のFlashMessengerメッセージを統合するpostDispatchを持っている:は私のコントローラでは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でフラッシュメッセージを渡したいと思います。メッセージが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は、次のページでアラートを表示します。したがって、* this *ページにページを送る場合は、ロジックを実行する必要があります(以前のメッセージを取得し、現在のメッセージを取得し、それらを結合する必要があります)。だから、レイアウト/ビューにロジックを置くだけでいいですか?それは確かにはるかに簡単ですが、私はそれがビュースクリプトのようなロジックを持つのは悪い習慣だと思った? – Corey
@Corey、Noumenal Flash Messengerのビューヘルパーは既にあなたのためにgetMessages()/ getCurrentMessages()ロジックを処理しています。 –