19

AJAX で呼び出される (JSON データを送信する) コントローラーがあるため、ビューは使用しません。

個人用ビュー ヘルパーを使用してデータをフォーマットする必要がありますが、 controller .

それは可能ですか?

それとも、間違っているのかもしれません(ビューが必要かもしれませんが、JSONではどうですか)?

4

5 に答える 5

45

次の方法で、コントローラーから任意の ViewHelper にアクセスできます。

$this->view->helpername(/*params*/);
// or
$helper = $this->view->getHelper('helpername');
// or
$broker = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
$broker->getView()->helpername(/*params*/);

Zend: How to use a custom function from a view helper in the controller? を参照してください。

ただし、間違っていることは正しいかもしれませんが(面白い写真btw)、あなたの質問からは本当にわかりません。ビューヘルパーを呼び出す必要がある理由と、何をフォーマットする必要があるかについて、それを改良してください。

于 2010-03-08T13:05:42.233 に答える
5
Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('view');

返されたビューが目的のビューであることを確認してください。後で、ビューが上書きされる可能性があり、コントローラーで新しいビューを叩く可能性があるためです。

そして、アクションヘルパーなどのビューで設定したすべての値...コントローラーが開始される前に?すべてが風と共に去りました!

そのため、ビュー リソースを取得するかどうかを想定する前にテストしてください。これは実際には期待どおりのビュー リソースであり、すべての var がまだ存在します。

あなたは私と同じように驚くかもしれません!

于 2012-02-13T11:21:36.303 に答える
3

ヘルパーのインスタンスを作成できます。これは、コントローラー、モデル、およびヘルパーが必要なあらゆる場所で機能します。

例えば。

// create Instance   
$serverUrl_helper = new Zend_View_Helper_ServerUrl();

// get the ServerUrl
$serverUrl = $serverUrl_helper->serverUrl();
于 2012-09-18T12:22:43.293 に答える
1

もう 1 つの方法は、ContextSwitch または AjaxContext action-helpersを使用することです。これにより、view-script を使用して、そこから標準的な方法で view-helper を呼び出すことができます。

于 2011-02-18T16:36:43.893 に答える
0

アクション ヘルパーを使用するだけです。ビュー ヘルパーの多くはアクション ヘルパーとしても利用できます。

Zend_Dateまたは、またはを使用して直接sprintf

于 2010-03-08T17:26:00.210 に答える