我创建了一个新的包,其中应包含twig文件.默认情况下,generate bundle命令行(in src/TestBundle/Resources/views/test.html.twig)已添加了一个twig文件.在IndexAction中还自动添加了render-command:
return $this->render('TestBundle:test.html.twig', $data);
但是当我调用IndexAction时,我得到一个模板未找到错误,并且错误说,symfony只查看
/app/Resources/views,
/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Resources/views/Form
Run Code Online (Sandbox Code Playgroud)
但不是 /src/TestBundle/...
为什么symfony会忽略bundle资源?我怎么能改变呢?
我在Symfony 3.3中遇到了同样的问题,最终通过反复试验发现你必须使用@后跟包名,但是在命名空间中省略了"Bundle"这个词.所以...
@MyFabulousUserBundle/Email/reset_password.html.twig
Run Code Online (Sandbox Code Playgroud)
......没有用,但是:
@MyFabulousUser/Email/reset_password.html.twig
Run Code Online (Sandbox Code Playgroud)
没有!
您不得删除子文件夹分隔符。
当模板位于
测试包/资源/视图/
做这个
return $this->render('TestBundle::test.html.twig', $data);
Run Code Online (Sandbox Code Playgroud)
当模板位于子文件夹中时,例如
TestBundle/资源/视图/文件夹/
用这个
return $this->render('TestBundle:Folder:test.html.twig', $data);
Run Code Online (Sandbox Code Playgroud)