我的控制器中出现渲染功能问题。
我有:
CoreBundle
DefaultController
loginAction
return $this->render('FooCoreBundle::Default:layout.html.twig', array());
我总是在模板中找到相同的未找到错误。我尝试过另一个模板树枝,这是同样的问题。在我的views文件夹中,我有一个Accueil
文件夹,我在其中放置了我要渲染的login.html.twig
模板。
我尝试直接在views文件夹中替换它,但没有更改。抱歉,我希望你能提供帮助。谢谢。
答案 0 :(得分:4)
值得一读documentation:
中的信息Symfony使用 bundle:directory:filename 字符串语法 生活在捆绑中的模板。这允许几种类型 模板,每个模板都位于特定的位置。
假设:
src/Foo/CoreBundle
src/Foo/CoreBundle/Resources/views/Default
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。