6

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

我使用了 symfony generate:bundle 命令,然后我创建了一个包。让我们称之为“犯罪捆绑”。

我看到它在 src/ 里面做了一个文件夹

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

现在每当我使用:

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

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

找不到模板“CrimeBundle:Default:index.html.twig”(查看:/Users/admin/sites/solve/app/Resources/views、/Users/admin/sites/solve/vendor/symfony/symfony/src /Symfony/Bridge/Twig/Resources/views/Form)。

但是,只要我使用命名空间的树枝路径,它就可以工作,例如:

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

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

我不明白为什么return $this->render('CrimeBundle:Default:index.html.twig');不能在 symfony 生成此代码时工作。

4

2 回答 2

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
于 2017-12-06T01:01:04.200 回答
0

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

于 2017-12-17T05:48:13.573 回答