php - Utilice ver ayudantes en controladores en Zend Framework
zend-framework view-helpers (5)
Otro enfoque es utilizar los ayudantes de acción ContextSwitch o AjaxContext . Esto le permite usar un script de vista desde el cual puede llamar a su asistente de vista de la manera estándar.
Tengo un controlador que se llama con AJAX (envía datos JSON), por lo que no uso una vista.
Necesito usar un ayudante de vista personal para formatear mis datos, pero en mi controlador .
Es eso posible ?
O tal vez lo estoy haciendo mal (tal vez debería tener una vista, pero ¿cómo con JSON)?
Puede acceder a cualquier ViewHelper desde el controlador mediante
$this->view->helpername(/*params*/);
// or
$helper = $this->view->getHelper(''helpername'');
// or
$broker = Zend_Controller_Action_HelperBroker::getStaticHelper(''ViewRenderer'');
$broker->getView()->helpername(/*params*/);
Consulte Zend: ¿Cómo usar una función personalizada de un asistente de visualización en el controlador?
Sin embargo, es posible que tengas razón en que lo estás haciendo mal ( foto graciosa por cierto ), pero realmente no puedo decir de tu pregunta. Refínelo por qué necesita llamar al asistente de vista y qué formato se supone que debe formatear.
Puede crear una instancia de un Ayudante. Esto funcionará en Controladores, Modelos y en cualquier lugar donde necesite el Ayudante.
p.ej.
// create Instance
$serverUrl_helper = new Zend_View_Helper_ServerUrl();
// get the ServerUrl
$serverUrl = $serverUrl_helper->serverUrl();
Simplemente use ayudantes de acción, muchos de los ayudantes de vista también están disponibles como ayudantes de acción.
O directamente utilizando Zend_Date
o sprintf
.
Zend_Controller_Front::getInstance()->getParam(''bootstrap'')->getResource(''view'');
Solo asegúrese de que la vista devuelta sea la vista que desea. Debido a que en la línea, la vista se puede sobrescribir y en el controlador tiene una vista nueva de azote.
¿Y todos esos valores que configura en la vista del ayudante de acción y similares ... antes de que se active el controlador? ¡Todo se ha ido con el viento!
Así que pruebe antes de asumir que si obtiene un recurso de visualización. es realmente el mismo recurso de visualización que espera, y todos sus vars todavía están allí.
Puede que te sorprendas como yo!