Utilizzare la vista aiutanti nei controllori in Zend Framework
-
18-09-2019 - |
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)?
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
.