【发布时间】:2020-03-23 02:58:42
【问题描述】:
这是上一个问题的延续。 Where is ->getForm() method located for Symfony3 CreateFormFactory
我克服了这个障碍,现在系统无法找到模板目录。我仍在关注 Symfony 指南。 https://symfony.com/doc/3.4/components/form.html#rendering-the-form
参考指南的第 23 行看起来需要将真实目录传递给 twig。参考下图。
我知道它看起来很多余,但它只是试图告诉 Twig 模板所在的位置。这返回了一个错误。
Uncaught Twig\Error\LoaderError: The "C:\oerm_dev\www\dev\future5_2\vendor\symfony\twig-bridge../../templates/billing" directory does not exist ("C:\oerm_dev\www\dev\future5_2\vendor\symfony\twig-bridge../../templates/billing"). in C:\oerm_dev\www\dev\future5_2\vendor\twig\twig\src\Loader\FilesystemLoader.php:106
您可以在左侧看到模板目录所在的位置。似乎 Twig 想要查看自己的文件夹,而不是给出文件夹位置。我尝试了几种不同的变体。
$loader = new FilesystemLoader(['../../templates/billing',
$vendorTwigBridgeDirectory.'requeueCharge.html.twig']);
这也会产生错误。
Uncaught Twig\Error\LoaderError: The "C:\oerm_dev\www\dev\future5_2\vendor\symfony\twig-bridge\requeueCharge.html.twig" directory does not exist
哪个错误信息为真,该位置不存在。但是我仍然不知道如何将树枝重定向到视图所在的文件夹?
更新
我只是继续创建文件夹并将 layout.html.twig 文件移动到该位置。现在错误信息是
Uncaught Symfony\Component\Form\Exception\LogicException: No block "form_start" found while rendering the form.
Template.php(380): Twig\Template->displayWithErrorHandling(Array, Arr in C:\oerm_dev\www\dev\future5_2\templates\billing\requeueCharge.html.twig on line 8
该文件中的第 8 行内容如下:
{% extends 'layout.html.twig' %}
{% block title %}{% endblock %}
{% block body %}
<div class="container">
<h3></h3>
{{ form_start(reportForm) }}
{{ form_widget(reportForm) }}
<button type="submit" class="btn btn-primary">Search</button>
{{ form_end(reportForm) }}
问题不在于模板/计费,而是代码需要指向组件 twig-bridge 附带的内置模板。在示例中,文件夹 Resource/views/Forms 是一个必须使用的真实目录。
【问题讨论】:
-
C:\oerm_dev\www\dev\future5_2\vendor\symfony\twig-bridge../../templates/billing -
我把斜线放在最后,同样的问题发生了。感谢您指出了这一点。 : - )