Php 如何覆盖;表格“分区布局图”;基本模板?

Php 如何覆盖;表格“分区布局图”;基本模板?,php,forms,symfony,Php,Forms,Symfony,我想覆盖要在twig中使用的基本tempale 我用过这个 twig: form: resources: - 'form_div_layout.html.twig' 我已将文件从原始位置复制到 app/resources/views/Form/Form\u div\u layout.html.twig但我仍然无法看到模板呈现中的更改 基本上我只想在DIV框中添加生成的类 {% block form_widget_compound %} {% sp

我想覆盖要在twig中使用的基本tempale

我用过这个

twig:
    form:
        resources:
            - 'form_div_layout.html.twig'
我已将文件从原始位置复制到
app/resources/views/Form/Form\u div\u layout.html.twig
但我仍然无法看到模板呈现中的更改

基本上我只想在DIV框中添加生成的类

{% block form_widget_compound %}
{% spaceless %}
    <div class="MYCLASS" 
    {{ block('widget_container_attributes') }}>
        {% if form.parent is empty %}
            {{ form_errors(form) }}
        {% endif %}
        {{ block('form_rows') }}
        {{ form_rest(form) }}
    </div>
{% endspaceless %}
{% endblock form_widget_compound %}
{%block form\u widget\u component%}
{%spaceless%}
{%如果form.parent为空%}
{{form_errors(form)}}
{%endif%}
{{block('form_rows')}
{{form_rest(form)}
{%endspaceless%}
{%endblock表单\小部件\复合%}

是否需要进行更多更改?

如果只想自定义一个字段,则无需复制完整文件。这样做:

如果只想对一个模板执行此操作,请将其添加到模板中:

{% form_theme form _self %}

{% block form_widget_compound %}
{% spaceless %}
    <div class="MYCLASS" >
    {{ block('widget_container_attributes') }}>
        {% if form.parent is empty %}
            {{ form_errors(form) }}
        {% endif %}
        {{ block('form_rows') }}
        {{ form_rest(form) }}
    </div>
{% endspaceless %}
{% endblock form_widget_compound %}
如果希望此自定义项在捆绑包的所有模板中都可用,请将其添加到配置文件中:

# app/config/config.yml
twig:
    form:
        resources:
            - 'AcmeDemoBundle:Form:fields.html.twig'
如果希望此文件可用于所有捆绑包,请将此文件复制到

app/Resources/AcmeDemoBundle/views/Form/fields.html.twig

要执行您正在尝试的操作,只需在参考资料中复制form\u div\u layout.html.twig,而不复制form文件夹,然后在配置引用中按以下方式复制:::form\u div\u layout.html.twig

twig:
    form:
        resources:
            - '::form_div_layout.html.twig'

你不必全部复制。您只能扩展它的一部分。

在这里,简单明了。若要仅覆盖应用程序范围内的某些块,必须使用与
form\u div\u layout.html.twig
不同的文件名,否则将出现错误。如果复制整个文件并进行更改,这不是问题。但是,如果您只想覆盖某些块,则可以这样做:

创建文件
app/Resources/views/forms.html.twig
并粘贴到要自定义的块中。文件名并不重要,只要它不是
form\u div\u layout.html.twig

接下来将其添加到
app/config/config.yml

# app/config/config.yml
twig:
    form:
        resources: ["::forms.html.twig"]

我想对所有捆绑包中的所有模板执行此操作。有没有什么方法我不需要更改单个模板我根据引导设置创建了一个模板。它包括label_attr类,用于将其设置为control label。现在,我想有几行帮助工具提示,所以我需要添加一个类。formbuilder不会覆盖模板。那么,是否可以定义一个自定义行,例如块表单_row_custom,然后让formbuilder使用该行?
twig:
    form:
        resources:
            - '::form_div_layout.html.twig'
# app/config/config.yml
twig:
    form:
        resources: ["::forms.html.twig"]