php - 生成包后无法找到模板

标签 php symfony twig symfony-3.4

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

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

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

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

现在每当我使用:

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

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

Unable to find template "CrimeBundle:Default:index.html.twig" (looked into: /Users/admin/sites/solve/app/Resources/views, /Users/admin/sites/solve/vendor/symfony/symfony/src/Symfony/Bridge/Twig/Resources/views/Form).

但是每当我使用命名空间的 Twig 路径时它都有效,例如:

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

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

我不明白为什么 return $this->render('CrimeBundle:Default:index.html.twig'); 不会工作,因为 symfony 生成了这段代码。

最佳答案

根据这个 - 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

关于php - 生成包后无法找到模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47661700/

相关文章:

php - Codeigniter Active Record HAVING/WHERE db.field = db.field

php - Nelmio Api 文档包 : Documentating required Parameters

php - 将变量插入到 twig 中的显示字符串中

php - 如何仅禁用一个 UserType 而不是另一个?

twig - 使用 Symfony 4 插件在 PhpStorm 中缺少 Twig 模板

php - Laravel session 随机过期

php - 我需要根据数组中的确切顺序提取数据

php - 如何在 INSERT 查询中将美国日期格式转换为 MYSQL 格式

php - 将数据保存在相关表中 Symfony 4

arrays - 在 Twig 中循环两个数组