gpt4 book ai didi

php - 如何覆盖 "form_div_layout"基本模板?

转载 作者:可可西里 更新时间:2023-11-01 13:45:37 28 4
gpt4 key购买 nike

我想覆盖要在 Twig 中使用的基础模板。

我用过这个

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

并且我已将文件从原始位置复制到app/resources/views/Form/form_div_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 %}

我还需要做任何改变吗?

最佳答案

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

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

{% 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 %}

如果您想在多个模板中对其进行自定义,请执行以下操作:使用以下代码在您的包中创建一个模板文件:

{# src/Acme/DemoBundle/Resources/views/Form/fields.html.twig #}
{% 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 %}

然后在您要使用此自定义字段的那些模板中,执行:

{% form_theme form 'AcmeDemoBundle:Form:fields.html.twig' %}

如果您希望此自定义在 bundle 的所有模板中可用,请将其添加到您的配置文件中:

# app/config/config.yml
twig:
form:
resources:
- 'AcmeDemoBundle:Form:fields.html.twig'

如果您希望所有 bundle 都可以使用此文件,请将此文件复制到

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

关于php - 如何覆盖 "form_div_layout"基本模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12243021/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com