Slim + Twig:未找到视图

问题描述 投票:0回答:1

我使用的是安装了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);
}

以前有人遇到过这个问题,还是知道失败的特定原因?

php symfony twig slim
1个回答
0
投票

错误消息指向模板路径不正确。

[themes/benmajor/page-projects.twig不在themes/benmajor中,但是page-projects.twig在。

我建议实现getTemplate()以返回模板名称page-projects.twig,并放弃将模板路径构建为Slim

© www.soinside.com 2019 - 2024. All rights reserved.