Reputation: 2973
I'm using ZF2's View component as standalone for my project like this:
$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 charm. The child renders in model1. But the problem is, how can i access model1's variable key
in model2?
Upvotes: 4
Views: 1931
Reputation: 686
You can use the Zend\View\Helper\ViewModel
to access a common root view model, and possibly traverse the whole view model tree from that.
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 every view template.
You can peek at how this is dealt with by default in Zend\Mvc\View\Http\ViewManager
Upvotes: 1