4

我将 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);

它就像魅力一样。孩子在 model1 中渲染。但问题是,我如何访问keymodel2 中的model1 变量?

4

1 回答 1

1

您可以使用Zend\View\Helper\ViewModel来访问公共根视图模型,并可能从中遍历整个视图模型树。

只需设置根本身:

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

现在$this->viewModel()->getRoot()$model1在每个视图模板中返回。

您可以在Zend\Mvc\View\Http\ViewManager中查看默认情况下是如何处理的

于 2013-09-19T15:20:58.440 回答