Php Symfony 2中的细枝模板路径

Php Symfony 2中的细枝模板路径,php,symfony,twig,Php,Symfony,Twig,我正在处理一个Symfony2项目,目前正试图为我的控制器渲染视图,但令人烦恼的是,我经常看到以下错误消息: Unable to find template 因此,据我所知,渲染函数的路径部分存在问题。我试图解决这个问题,但无论我如何改变我的道路,我总是得到这个信息 test.html.twig文件的完整路径: src/Test/NewsInfrastructure/Sitemap/test.html.twig 我就是这样实现这条路径的: return $this->templatin

我正在处理一个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()通过Bundle的文件夹(资源/视图)或搜索模板

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

$this->render('@Vendor/Product/view.html.twig'); // src/Vendor/MyBundle/Resources/views/Product/view.html.twig
@Vendor
-没有Bundle后缀,它的工作速度也更快

如果确实要加载位于“资源”文件夹外部的模板,这将对您有所帮助:

$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);

您应该使用Bundle名称而不是完整路径,或者使用斜杠而不是冒号。冒号符号只在bundle上起作用。所以像这样的“NewsInfrastructure/Sitemap/test.html.twig”。。?如果是这样,我已经尝试过了,但也失败了。包名是什么?这行吗?“TestNewsInfrastructureBundle:Sitemap:test.html”捆绑包名称为NewsInfrastructure。不幸的是,这条路也行不通@Tomazi尝试这样做:“TestNewsInfrastructure:Sitemap:test.html.twig`,但您应该遵守symfony约定并重命名您的捆绑包NewsInfrastructureBundle此模板不在resources文件夹中,而且捆绑包名称不以
捆绑包
结尾。因此,他可能还需要这样做,并在
资源/视图中添加模板folder@StrawHat他应该改变它,然后我真的有我的twif文件下的资源/视图。。。?“保持这种命名惯例有多必要:MYbundleBundle..?”Tomazi read