Domanda

Ho un controller che si chiama con AJAX (invia i dati JSON), quindi io non uso una vista.

Ho bisogno di usare un personnal view helper per formattare i miei dati, ma nel mio controller .

È possibile?

O forse sto facendo sbagliato (forse dovrei avere una visione, ma come con JSON)?

È stato utile?

Soluzione

È possibile accedere a qualsiasi ViewHelper dal controller da

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

Zend:? Come utilizzare una funzione personalizzata da un aiutante vista nel controller

Tuttavia, si potrebbe essere giusto che si sta facendo male ( funny pic tra ), ma non posso davvero dire dalla tua domanda. Si prega di raffinare è il motivo per cui è necessario chiamare l'helper vista e ciò che si suppone formato.

Altri suggerimenti

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

Basta essere sicuri che la vista restituito è la vista che si desidera. Perché tutta la linea, la vista può essere sovrascritte e sul controller si dispone di una nuova vista sculacciata.

E tutti quei valori si imposta sulla vista sul aiutante di azione e simili ... prima che il controllore è calci? Tutto andato con il vento!

Quindi, prova prima di assumere che se si ottiene una risorsa vista. in realtà è la stessa risorsa vista che ci si aspetta, e che tutti i tuoi Vars sono ancora lì.

Si può essere sorpresi come mi era!

È possibile creare un'istanza di un Helper .. questo funzionerà in Controller, modelli e ovunque è necessario il Consolatore.

ad es.

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

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

Un altro approccio è quello di utilizzare il ContextSwitch o AjaxContext azione aiutanti . Questo consente di utilizzare una vista-script da cui si può quindi chiamare la visualizzazione-helper in modo standard.

Basta usare aiutanti d'azione, molti di vista aiutanti sono disponibili come aiutanti d'azione troppo.

O direttamente utilizzando Zend_Date o sprintf.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top