生成捆绑后无法找到模板

时间:2017-12-05 19:58:35

标签: php symfony twig symfony-3.4

好吧,这可能是一件非常奇怪的事情。 这不是我第一次参加symfony项目,但是:

我使用了symfony generate:bundle命令,之后我创建了一个bundle。让我们称之为" CrimeBundle"。

我看到它在src /

中创建了一个文件夹

它还自动生成DefaultController和index.html.twig文件。

现在每当我使用:

return $this->render('CrimeBundle:Default:index.html.twig');

它不起作用:我收到错误:

  

无法找到模板&#34; CrimeBundle:默认:index.html.twig&#34; (查看:/ Users / admin / sites / solve / app / Resources / views,/ Users / admin / sites / solve / vendor / symfony / symfony / src / Symfony / Bridge / Twig / Resources / views / Form)。< / p>

但是每当我使用命名空间的twig路径时它都可以工作,如:

return $this->render('@Crime/Default/index.html.twig');

我喜欢第一个选项,因为在我的其他项目中我也使用它。它们都不是同一个版本,目前我用的是:3.4.1 文件也在那里,因为它适用于命名空间的树枝路径。

我无法理解为什么return $this->render('CrimeBundle:Default:index.html.twig');无法在symfony中生成此代码。

2 个答案:

答案 0 :(得分:5)

根据这个 - https://symfony.com/doc/3.4/templating.html#referencing-templates-in-a-bundle 这是支持包模板的唯一参考类型

@BundleName/directory/filename.html.twig

如果你去symfony 3.1的文档,你会发现这是支持旧引用的最后一个版本

AcmeBlogBundle:Blog:index.html.twig

答案 1 :(得分:0)

也许您可以为此文件创建拉取请求 SensioGeneratorBundle/bundle/DefaultController.php.twig