FlashMessengerヘルパーを使用して、Zend Frameworkで(警告、成功、エラー)フラッシュメッセージを分類する最も簡単な方法は何ですか?また、コントローラが必ずしも要求を転送していない可能性があるメッセージをチェックする単一のメソッドが必要です。現時点では、これはFlashMessenger :: getCurrentMessage()を介して行われていると思いますか?Zend FrameworkでのFlashMessengerメッセージの分類
答えて
あなたはこれを行うことができますコントローラいるで:
<?php echo $this->flashMessenger('notice'); ?>
そして、このようなエラー:
$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('error'); ?>
編集:
チェックthis link:
...ここで通常のgetMessages()メソッドを呼び出すことはできません。これは、FlashMessengerがインスタンス化されたときに適切なZendSession名前空間に格納されたメッセージのみを返します。このリクエストを追加したメッセージは、その時点で(FlashMessengerがメッセージを追加するためにインスタンス化されていたため)ZendSession名前空間にないため、getMessages()によって返されません。
このユースケースの場合、FlashMessengerは現在のリクエストで設定されたメッセージを返すgetCurrentMessages()
メソッド(および関連する現在のメソッドのファミリ)も提供します。
2つのアイデア。
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をビュー変数にマージしました。
私はコントローラのアクションでメッセージを設定しました。
$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 Frameworkのコードの書類のスタイル
- 3. zend framework flash messangerメッセージとリダイレクト
- 4. Zend FrameworkなしのZendツール
- 5. Zend Frameworkのマルチプレイフォーム
- 6. Zend Frameworkの3
- 7. Zend Frameworkの - カスタムデコレーター
- 8. のZend Frameworkクラス
- 9. Zend Frameworkの:
- 10. Zend frameworkのデプロイメント
- 11. VistaのZend Framework
- 12. zend-frameworkのテンプレートシステム
- 13. Zend Frameworkの - リライト
- 14. Zend Frameworkのカスタムルート
- 15. zend frameworkのレイジーローディングコレクション
- 16. Zend Frameworkのフルダイナミックルータ
- 17. Zend Frameworkのパブリックフォルダ
- 18. Zend Frameworkの2、
- 19. Zend Frameworkを使用したZend Frameworkフォーム
- 20. Zend Frameworkのunittestの
- 21. のZend Studioの7.0 + Zend Frameworkの
- 22. は、Zend Frameworkでのカスタムコントローラディレクトリ
- 23. PHPでのテストサービス(Zend Framework 2)
- 24. Zend FrameworkのFIND_IN_SET()ですか?
- 25. Zend Frameworkの:ここで
- 26. Zend Frameworkのロガー:ZendのDB Loggerは
- 27. Zend FrameworkのURLリダイレクト
- 28. クエリ間のZend Framework
- 29. Zend FrameworkのURLサフィックス
- 30. Zend Frameworkの、教義
これを達成する別の方法は、ここで見つけることができます:http://stackoverflow.com/questions/3950637/type-of-flash-messenger-in-zend – Gardner