我将我的项目更新为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'
答案 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