Frage

Ich habe einen Controller, der mit AJAX (sendet JSON-Daten) genannt wird, so dass ich nicht verwenden eine Ansicht aus.

Ich brauche eine personnal View Helfer verwenden, um meine Daten zu formatieren, aber in meinem Controller .

Ist das möglich?

Oder vielleicht bin ich tun es falsch (vielleicht sollte ich einen Blick haben, aber wie mit JSON)?

War es hilfreich?

Lösung

Sie können auf jeden View Helfer vom Regler durch

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

Siehe Zend: Wie eine benutzerdefinierte Funktion aus einer Ansicht Helfern in der Steuerung verwenden

Sie könnten jedoch auch richtig sein, dass Sie es falsch machen ( funny pic btw ), aber ich kann aus Ihrer Frage nicht wirklich sagen. Bitte verfeinern Sie es, warum Sie müssen den View Helfer nennen und was es soll Format.

Andere Tipps

Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('view');

Seien Sie sicher, dass das zurückgegebene Ansicht der Ansicht ist, die Sie wollen. Da auf der ganzen Linie können die Ansichten überschreiben und auf dem Controller haben Sie eine Klaps neue Ansicht.

Und all die Werte, die Sie Setup für die Sicht auf die Aktion Helfer und dergleichen ... bevor der Controller in ihn zu kontrollieren? Alle vom Wind verweht!

So Test vor davon aus, dass, wenn Sie eine Ansicht Ressource erhalten. es ist wirklich die gleiche Ansicht Ressource, die Sie erwarten, und dass alle Ihre Vars noch da sind.

Sie können überrascht sein, wie ich! War

Sie können eine Instanz eines Helfers schaffen .. Dies wird in Controllern, Models arbeiten und überall benötigen Sie den Helfer.

zB.

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

// get the ServerUrl
$serverUrl = $serverUrl_helper->serverUrl();
scroll top