找不到模板树枝

时间:2015-01-19 17:07:04

标签: symfony templates twig render

我的控制器中出现渲染功能问题。

我有:

  • 一个名为CoreBundle
  • 的包
  • 名为DefaultController
  • 的控制器
  • 其中我有一个名为loginAction
  • 的动作
  • 我正在尝试使用此行渲染模板树枝

return $this->render('FooCoreBundle::Default:layout.html.twig', array());

我总是在模板中找到相同的未找到错误。我尝试过另一个模板树枝,这是同样的问题。在我的views文件夹中,我有一个Accueil文件夹,我在其中放置了我要渲染的login.html.twig模板。

我尝试直接在views文件夹中替换它,但没有更改。抱歉,我希望你能提供帮助。谢谢。

3 个答案:

答案 0 :(得分:4)

值得一读documentation

中的信息
  

Symfony使用 bundle:directory:filename 字符串语法   生活在捆绑中的模板。这允许几种类型   模板,每个模板都位于特定的位置。

假设:

  • FooCoreBundle 是您的捆绑包 - > src/Foo/CoreBundle
  • 默认是模板目录 - > src/Foo/CoreBundle/Resources/views/Default
  • layout.html.twig 是您的文件 - > src/Foo/CoreBundle/Resources/views/Default/layout.html.twig

然后您应该使用的路线为'FooCoreBundle:Default:layout.html.twig',而::

中没有您使用的'FooCoreBundle::Default:layout.html.twig'

::是指特定于捆绑包的基本模板。如果您使用FooCoreBundle::layout.html.twig,那么您的模板应该位于Resources/views/layout.html.twig内的FooCoreBundle

希望这能澄清事情。

答案 1 :(得分:0)

你应该使用

 return $this->render('NeobeCoreBundle:Default:Accueil:layout.html.twig', array());

没有双冒号,添加Accueil子文件夹

答案 2 :(得分:0)

这并不是真正的答案,但对于那些带着symfony 4来到这里的人来说可能会很方便。

在文档中,作者说不要将您的业务逻辑组织成束。

  

在现代Symfony应用程序中,不再建议使用捆绑软件来组织业务逻辑。

当然可以,只是不建议这样做。参见here