找不到模板树枝
template twig not found
我的控制器中的渲染函数有问题。
我有:
- 一个包,名为
CoreBundle
- 一个名为
DefaultController
的控制器
- 其中我有一个名为
loginAction
的动作
- 我在其中尝试使用此行渲染模板树枝
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。
我的控制器中的渲染函数有问题。
我有:
- 一个包,名为
CoreBundle
- 一个名为
DefaultController
的控制器
- 其中我有一个名为
loginAction
的动作
- 我在其中尝试使用此行渲染模板树枝
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。