我正在使用ZF2的View组件作为我的项目的独立组件:
$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);
它就像魅力一样。孩子在模特1中渲染。但问题是,如何在model2中访问model1的变量key
?
答案 0 :(得分:1)
您可以使用Zend\View\Helper\ViewModel
访问公共根视图模型,并可能从中遍历整个视图模型树。
只需设置根目录:
// right after you instantiated $model1
$modelHelper = $renderer->plugin('view_model');
$modelHelper->setRoot($model1);
现在$this->viewModel()->getRoot()
将在每个视图模板中返回$model1
。