我使用的是安装了Twig扩展程序的Slim3,并且大多数情况下一切正常。
但是,我现在尝试使用URL slug作为参数来构建可扩展模板,以为定义的路由加载特定模板。本质上,文件的命名如下:
page-projects.twig
(/projects
的页面]page.twig
(默认页面)我正在使用以下代码来呈现页面:
return $page->app->getTwig()->render( $response, $page->getTemplate(), $data);
但是,当访问/projects
路线时,我从Slim收到以下错误:
Type: Twig \ Error \ LoaderError消息:无法找到模板“ themes / benmajor / page-projects.twig”(调查:themes / benmajor)。
$page->getTemplate()
的输出正确(即themes/benmajor/page-projects.twig
),甚至使用file_exists
也会返回true
:
function renderMyPage()
{
var_dump( file_exists($page->getTemplate()) ); // true
return $page->app->getTwig()->render( $response, $page->getTemplate(), $data);
}
以前有人遇到过这个问题,还是知道失败的特定原因?
错误消息指向模板路径不正确。
[themes/benmajor/page-projects.twig
不在themes/benmajor
中,但是page-projects.twig
在。
我建议实现getTemplate()
以返回模板名称page-projects.twig
,并放弃将模板路径构建为Slim