zend tutorial framework español documentacion curso zend-framework capture zend-view

zend-framework - tutorial - zend framework vs laravel



Cómo capturar un resultado de vista de Zend en lugar de emitirlo (1)

Problema: a veces en nuestro controlador Zend no queremos que el script se emita directamente, sino que más bien queremos el contenido de ese script. Un ejemplo: cuando necesitamos el resultado, la salida html de una secuencia de comandos de vista se incluye en otra estructura, como JSON o XML, para su procesamiento en el lado del cliente.

Encontré el resultado aquí en el desbordamiento de pila, pero no tan rápido ya que estaba en un contexto diferente. He estado luchando con esto durante 2 días. Resultó que fue muy simple:

// in our controllers'' action method $this->_helper->layout()->setLayout(''empty''); // disable layout $this->_helper->viewRenderer->setNoRender(true); // make sure the script is not being rendered // any of your code here $html = $this->view->render(''projects/climate.phtml''); // return the view script content as a string $json = array(''html''=>$html, ''initData''=>''my other needed data''); echo json_encode($json);

Espero que esto esté claro y sea útil para alguien.


Intenta usar

public myAction () { $this->_helper->json(array( ''html'' => $this->view->render(''projects/climate.phtml''), ''initData''=> ''my other needed data'', )); }

La acción de Json Helper normalmente

  • desactivar el viewRenderer
  • desactivar el diseño
  • json_encode la matriz