我目前正在Zend 2的一个库中工作,其中包括渲染视图脚本。渲染工作正常,我也可以在视图脚本中使用任何其他帮助器,但是basePath()帮助器抛出了一条带有消息的异常:
No base path provided
我已经尝试在配置中设置basePath,但它只是在控制器呈现的视图脚本中更改。 如果它是相关的,这是呈现视图的代码:
// file: /vendor/mate/library/mate/Group/Functions/GetHtml.php
// $templateDir is either directing to /module/Application/view/group/<name>.phtml
// or to /vendor/mate/library/mate/view/group/<name>.phtml
$map = new Resolver\TemplateMapResolver(array(
'group/'.$type => $templateDir,
));
$stack = new Resolver\TemplatePathStack(array(
'script_paths' => array(
$viewDir,
)
));
$resolver->attach($map) // this will be consulted first
->attach($stack);
$groupModel = new ViewModel(array(
'elements' => $this->getGroup()->toArray(),
'groupElement' => $groupElement,
));
$groupModel->setTemplate('group/'.$type);
$groupHtml = $renderer->render($groupModel);
有没有人知道如何让basePath在我的视图脚本中工作?
答案 0 :(得分:1)
必须明确设置帮助程序的基本路径。从渲染器中获取插件并在渲染之前先设置基本路径:
// create your view model
$renderer->plugin('basePath')->setBasePath('/foo');
// render view model now
答案 1 :(得分:0)
问题之所以出现,是因为您正在创建PhpRenderer的新单独实例,而不是使用已存在的实例。
如果您通过服务管理器获取渲染器而不是创建新渲染器,则不需要任何此配置。