如何在zf2 AbstractRestfulController中调用模板文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在zf2 AbstractRestfulController中调用模板文件相关的知识,希望对你有一定的参考价值。
我试图在Zend Framework 2.5 AbstractRestfulController中渲染模板文件,但代码中有错误或缺失。我能做什么 ?
控制器代码
使用Zend View Model ViewModel;
class trial extends AbstractRestfulController{
public function DetailTalktrackAction(){
$view = new ViewModel();
$view->setTemplate('api/trial/specialty_talktrack');
$view->setTerminal(true);
$html = $this->getServiceLocator()->get('viewrenderer')->render($view);
echo $html;
exit;
}
}
模块文件夹
- Api
-- config
-- src
--- Api
---- Controller
----- TrialController.php
-- view
--- api
--- trial
---- specialty_talktrack.phtml
错误
"class": "Zend\View\Exception\RuntimeException",
"file": "/opt/lampp/htdocs/crush/phase2/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php",
"line": 494,
"message": "Zend\View\Renderer\PhpRenderer::render: Unable to render template "api/trial/specialty_talktrack"; resolver could not resolve to a file"
1)template_map
您的模板文件应该在密钥view_manager
中的template_map
配置中定义。你可以在这个in the documentation for ZendView
上阅读更多信息。
//...
'view_manager' => array(
'template_map' => array(
'api/trial/specialty_talktrack' => ...path to your file...
)
),
//...
来自ZendView
文档:
TemplateMapResolver允许您直接将模板名称映射到特定模板。以下地图将提供主页模板(“应用程序/索引/索引”)的位置,以及布局(“布局/布局”),错误页面(“错误/索引”)和404页面(“错误/ 404“),解析它们以查看脚本。
'template_map' => array(
'application/index/index' => __DIR__ . '/../view/application/index/index.phtml',
'site/layout' => __DIR__ . '/../view/layout/layout.phtml',
'error/index' => __DIR__ . '/../view/error/index.phtml',
'error/404' => __DIR__ . '/../view/error/404.phtml',
),
2)template_path_stack
你也可以检查the example from the ZF2 album application tutorial在哪里设置template_path_stack
,就像一个默认文件夹,用于搜索模板文件。如果要默认搜索视图文件夹中的视图,可以将此路径添加到template_path_stack
,如下所示:
'view_manager' => array(
'template_path_stack' => array(
'Api' => __DIR__ . '/../view',
),
),
来自ZendView
文档:
TemplatePathStack采用一系列目录。然后以LIFO顺序(它是一个堆栈)搜索目录,以查找所请求的视图脚本。这是快速应用程序开发的一个很好的解决方案,但由于需要静态调用的数量,可能会在生产中引入性能开销。
以下内容添加了一个指向当前模块的视图目录的条目。确保模块之间的密钥不同,以确保它们不会被覆盖 - 或者只是省略密钥!
'template_path_stack' => array(
'application' => __DIR__ . '/../view',
),
以上是关于如何在zf2 AbstractRestfulController中调用模板文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ZF2 中将 ServiceManager 的实例放入模型中
如何在 ZF2 中启用显示全局标签取消 FormMultiCheckbox?