【问题标题】:Multiple symfony2 form type templates in a single file?单个文件中有多个 symfony2 表单类型模板?
【发布时间】:2014-08-27 16:31:39
【问题描述】:

我在 Symfony2 和它们各自的 twig 模板中创建了两个自定义表单类型。在阅读the documentation 时,我注意到他们称树枝为“fields.html.twig”。这让我相信我可以在一个文件中定义多个块,但我似乎无法理解如何?这是我当前的 fields.html.twig 文件:

{% block open_range_widget %}
    <div class="open_range_widget" style="display: inline;">
        <div class="field" style="display: inline;">
            {{ form_errors(form.sel) }}
            {{ form_widget(form.sel) }}
        </div>
        <div class="field" style="display: inline;">
            {{ form_errors(form.val) }}
            {{ form_widget(form.val) }}
        </div>
    </div>
{% endblock %}

{% block range_widget %}
    <div class="range_widget" >
        <div class="field" style="display: inline; width: 50%">
            {{ form_errors(form.min) }}
            {{ form_widget(form.min) }}
        </div>
        <div class="field" style="display: inline; width: 50%">
            {{ form_errors(form.max) }}
            {{ form_widget(form.max) }}
        </div>
    </div>
{% endblock %}

【问题讨论】:

  • 你有什么问题?你有错误吗?你只是不确定如何告诉 symfony 使用这个文件?

标签: php forms symfony twig


【解决方案1】:

如果你查看 'vendor/symfony/symfony/bridge/Twig/resources/views/form/' 你会注意到一个名为 form_div_layout.html 的文件看看里面你会注意到标准 Symfony2 表单的整个集合小部件包含在这里。所以是的,您可以在模板文件中定义任意数量的块。虽然最好把事情分开一点。假设您有 2 种不同样式的选择小部件,具体取决于表单,您需要 2 个模板来定义这些样式。

您甚至可以将随附的整个模板复制到 App/Resources/Views/Form/form_div_layout.html 并直接在其中进行修改。但是,它可能会导致模板文件复杂而混乱,其中包含许多不需要的块。

【讨论】:

  • 我看了一下,你是对的。我可能做错了什么。对于单页 Web 应用程序,这完全没问题。谢谢
猜你喜欢
  • 1970-01-01
  • 2011-07-14
  • 1970-01-01
  • 2013-05-05
  • 1970-01-01
  • 1970-01-01
  • 2013-05-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多