找不到模板树枝

template twig not found

我的控制器中的渲染函数有问题。

我有:

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

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

我尝试直接在 views 文件夹中替换它,但没有任何变化。对不起我的英语希望你能帮忙。谢谢。

你应该使用

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

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

documentation 中值得一读的信息:

Symfony uses a bundle:directory:filename string syntax for templates that live inside a bundle. This allows for several types of templates, each which lives in a specific location.

假设:

  • 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 inside FooCoreBundle.

希望这能澄清事情。

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

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

In modern Symfony applications, it's no longer recommended to organize your business logic using bundles.

当然可以,只是不推荐。参见 here