Can I visualize a view without returning it in the action controller in zend framework 2?

Now I do this:

public function indexAction() { ... $view = new ViewModel(array( 'foo' => 'bar', )); return $view; } 

The problem is that I want to do something after rendering $ view and before rendering the layout:

 public function indexAction() { ... $view = new ViewModel(array( 'foo' => 'bar', )); $layout = $this->layout(); $layout->content = $view->render(); ... // here I want to do some important action ... $html = $layout->render(); return $this->getResponse()->setContent($html); } 

But there is no render () method. In ZF1, I could visualize the view:

 $view = new Zend_View($data); $html = $view->render($templateName); 

How to do it in ZF2?

+6
source share
2 answers

Try the following:

 public function IndexAction() { ... $viewRender = $this->getServiceLocator()->get('ViewRenderer'); $html = $viewRender->render($viewModel); ... } 
+24
source

Complementing the answer, with the layout turned on ...

 public function IndexAction() { ... $viewRender = $this->getServiceLocator()->get('ViewRenderer'); $layout = new ViewModel(); $layout->setTemplate("layout/main"); $layout->setVariable("content", $viewRender->render($viewModel)); $html = $viewRender->render($layout); ... } 
+14
source

All Articles