Symfony 4 - 无法找到模板

时间:2018-02-25 14:34:19

标签: php symfony templates twig

我将我的项目更新为Symfony4。 当我使用表单访问某个页面时出现此错误:

Unable to find template "StarRatingBundle::rating.html.twig" 
(looked into: /templates, /templates, \vendor\symfony\twig-bridge/Resources/views/Form).

我使用blackknight467/star-rating-bundle一个捆绑,它提供了一个枝条扩展,以拥有星级评分系统。错误中的模板位于此捆绑包Resources/views文件夹中。

Twig.yaml

twig:
    paths: ['%kernel.project_dir%/templates']
    debug: '%kernel.debug%'
    strict_variables: '%kernel.debug%'
    form_themes:
        - 'Form/fields.html.twig'

2 个答案:

答案 0 :(得分:1)

Symfony 4+不支持“ x:x:x.html.twig”表示法。您需要安装composer require templating

然后通过添加

在您的framework.yaml中激活它

templating: engines: ['twig']

文件>使缓存无效并重新启动。这应该可以让Symfony找到您的模板。

答案 1 :(得分:0)

我在创建 symfony 5 包时遇到了这个问题。确保将树枝模板保存在 <project-folder>/Resources/views 文件夹中。在您的控制器中,以 HelloworldController 为例:

`<?php
    namespace Example\HelloBundle\Controller;
    use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\Routing\Annotation\Route;

    class HelloController extends AbstractController
    {
        public function index(): Response
        {
            return $this->render('@<BundleName>/hello/index.html.twig',           [
            'controller_name' => 'HelloController',
            ]);
        }
    }

是没有包后缀的包的名称。例如,如果您在 Bundles.php 中将您的包注册为 Example\HelloBundle\ExampleHelloBundle::class => ['all' => true],,那么 <BundleName> 就是 ExampleHello