【问题标题】:unable to find template, after generating bundle生成捆绑包后找不到模板
【发布时间】:2018-05-19 14:11:18
【问题描述】:

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

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

我看到它在 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 生成了这段代码。

【问题讨论】:

标签: php symfony twig symfony-3.4


【解决方案1】:

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

【讨论】:

  • 该链接可能会回答问题,但请提供她的描述。否则,一旦链接更改,您的答案就会变得毫无用处。
【解决方案2】:

据此 - 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

【讨论】:

  • 我完全理解,但是,我不明白为什么它是由 symfony 自动创建的。我的意思是,如果它不能那样工作,为什么 generate:bundle 命令使用了错误的引用。
猜你喜欢
  • 2022-01-24
  • 1970-01-01
  • 2021-10-19
  • 2014-12-23
  • 2017-11-20
  • 1970-01-01
  • 1970-01-01
  • 2021-08-18
  • 1970-01-01
相关资源
最近更新 更多