Symfony 2 中的树枝模板路径


path to twig template in Symfony 2

我正在处理一个Symfony2项目,目前正在尝试为我的控制器渲染视图,但令人讨厌的是,我经常看到此错误消息:

Unable to find template

因此,据我了解,渲染函数的路径部分存在问题。我试图解决这个问题,但无论我如何改变我的道路,我都会收到这个信息。

test.html.twig 文件的完整路径:

src/Test/NewsInfrastructure/Sitemap/test.html.twig

这是我实现此路径的方式:

return $this->templating->renderResponse('src:Test:NewsInfrastructure:Sitemap:test.html.twig', array('sitemap' => $this->siteMap->getSiteMap()));

我做错了什么...?

TwigBundle (TwigExtension) 通过 Bundle 的文件夹(资源/视图)或更高级别搜索模板;

我认为通过命名空间调用模板来呈现模板的最简单方法,如下所示:

$this->render('@Vendor/Product/view.html.twig'); // src/Vendor/MyBundle/Resources/views/Product/view.html.twig

@Vendor - 没有捆绑后缀,它的工作速度也更快。

如果您真的想加载位于资源文件夹之外的模板,这可以帮助您:

$loader = new 'Twig_Loader_Filesystem(PATH_TO_DIRECTORY);
$twig = new 'Twig_Environment($loader, array('cache' => false));    
$twig_code = $twig->render('myFile.html.twig', []);
return new Response($twig_code);