Access parent view variable from child view in Zend Framework 2

I use the ZF2 View component as separate for my project, for example:

$renderer = new PhpRenderer; $resolver = new Resolver\AggregateResolver(); $stack = new Resolver\TemplatePathStack(array( 'script_paths' => array( __DIR__ . '/view' ) )); $resolver->attach($stack); $renderer->setResolver($resolver); $model1 = new ViewModel; $model1->setTemplate('template1'); $model1->setVariable('key', 'value'); $model2 = new ViewModel; $model2->setTemplate('template2'); $model1->addChild($model2, 'child'); echo $renderer->render($model1); 

It works like a charm. The child displays model 1. But the problem is, how can I access the model1 key variable in model2?

+4
source share
1 answer

You can use Zend\View\Helper\ViewModel to access the general view model of the root directory and possibly go through the entire view model tree.

Just set the root itself:

 // right after you instantiated $model1 $modelHelper = $renderer->plugin('view_model'); $modelHelper->setRoot($model1); 

And now $this->viewModel()->getRoot() will return $model1 in each view template.

You can see how this is done by default in Zend \ Mvc \ View \ Http \ ViewManager

+1
source

Source: https://habr.com/ru/post/1446565/


All Articles