0

そこで、FlashMessengerヘルパーの機能の一部を特殊化/簡素化するためのビューヘルパーを作成しました。

私はよく調べてみましたが、次のようなコードを使用してFlashMessengerヘルパーにアクセスできるはずです。

$ this-> view-> _ helper-> flashMessenger-> getMessages();

これは私にはうまくいきません。ビューにはアクセスできますが、_helperの下には何もアクセスできません。私のヘルパークラスはZend_View_Helper_Abstractを拡張します。ビュースクリプトからビューを明示的に渡す必要がありますか?

4

1 に答える 1

3

Zend_Controller_Actionの$_helperプロパティは、Zend_Controller_Action_HelperBrokerのインスタンスを格納するため、ビューからヘルパーに渡す代わりに、HelperBrokerのインスタンスを取得し、そこからFlashMessengerオブジェクトを取得できます。

// inside your view helper
$messenger = Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger');

これで、ビューヘルパー内からFlashMessengerにアクセスできます。アプリケーションのどこからでも同じことを実行して、アクションヘルパーへの参照を取得できます。

また、ヘルパーがまだ作成されていない場合は、呼び出すとヘルパーgetStaticHelperが初期化されることに注意してください。

詳細については、アクションヘルパー-ヘルパーブローカーを参照してください。

于 2012-02-06T21:25:33.477 に答える