AJAX(JSONデータを送信する)で呼び出されるコントローラーがあるので、ビューを使用しません。
データをフォーマットするには、個人的なビューヘルパーを使用する必要がありますが、コントローラー内です。
それは可能ですか?
または多分私は 間違っている (多分私はビューを持っているべきですが、JSONではどうですか)?
コントローラから任意のViewHelperにアクセスできます。
$this->view->helpername(/*params*/);
// or
$helper = $this->view->getHelper('helpername');
// or
$broker = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
$broker->getView()->helpername(/*params*/);
Zend:コントローラーのビューヘルパーからカスタム関数を使用する方法を参照してください
しかし、あなたはそれを間違っているのは正しいかもしれませんが(funny pic btw)、私はあなたの質問から本当にわかりません。ビューヘルパーを呼び出す必要がある理由と、それが何をフォーマットすることになっているのかについて、それを洗練してください。
Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('view');
返されるビューが目的のビューであることを確認してください。将来的には、ビューが上書きされる可能性があり、コントローラー上に新しいビューが表示される可能性があります。
そして、コントローラーが起動される前に、アクションヘルパーなどのビューで設定したすべての値は?すべて風と共に去りました!
したがって、ビューリソースを取得した場合に想定する前に、テストしてください。それは本当にあなたが期待するのと同じビューリソースであり、あなたのすべての変数がまだそこにあるということです。
私がそうであったようにあなたは驚くかもしれません!
ヘルパーのインスタンスを作成できます。これは、コントローラー、モデル、およびヘルパーが必要なすべての場所で機能します。
例えば。
// create Instance
$serverUrl_helper = new Zend_View_Helper_ServerUrl();
// get the ServerUrl
$serverUrl = $serverUrl_helper->serverUrl();
別のアプローチは、 ContextSwitchまたはAjaxContext action-helpers を使用することです。これにより、ビュースクリプトを使用して、そこから標準的な方法でビューヘルパーを呼び出すことができます。
アクションヘルパーを使用するだけで、ビューヘルパーの多くはアクションヘルパーとしても利用できます。
または、Zend_Date
またはsprintf
を使用して直接。