Symfony Symony2表单模板错误-变量“0”;小部件;不存在

Symfony Symony2表单模板错误-变量“0”;小部件;不存在,symfony,twig,formbuilder,Symfony,Twig,Formbuilder,我正在尝试使用symfony2和twig修改date_小部件。我只想展示这一年 在阅读了symfony2书籍中关于模板表单的章节后,我将date_小部件块复制到了我的模板中,并收到了错误: 捆绑包中不存在变量“widget…” 以下是我的模板中的代码: {% extends '::base.html.twig' %} {% block body %} {% block date_widget %} {% spaceless %} {% if widget == 'single_text

我正在尝试使用symfony2和twig修改date_小部件。我只想展示这一年

在阅读了symfony2书籍中关于模板表单的章节后,我将date_小部件块复制到了我的模板中,并收到了错误:

捆绑包中不存在变量“widget…”

以下是我的模板中的代码:

{% extends '::base.html.twig' %}
{% block body %}

{% block date_widget %}
{% spaceless %}
    {% if widget == 'single_text' %}
         {{ block('field_widget') }}
    {% else %}
        <div {{ block('widget_container_attributes') }}>
            {{ date_pattern|replace({
                '{{ year }}': form_widget(form.year),
            })|raw }}
        </div>
    {% endif %}
{% endspaceless %}
{% endblock date_widget %}

....print form (generated though app/console generate:crud)

{% endblock %}
{%extends'::base.html.twig%}
{%block body%}
{%block date\u widget%}
{%spaceless%}
{%if widget=='single_text%}
{{block('field_widget')}
{%else%}
{{日期|模式|替换({
“{{year}}”:form_小部件(form.year),
})|原始}}
{%endif%}
{%endspaceless%}
{%endblock日期\小部件%}
..打印表单(通过应用程序/控制台生成:crud生成)
{%endblock%}

有什么想法吗?谢谢

将date_小部件块放在body块之外,并在初始扩展之后添加以下代码

{% form_theme form _self %}
现在,您的代码应该如下所示

{% extends '::base.html.twig' %}
{% form_theme form _self %}

{% block body %}

....print form (generated though app/console generate:crud)

{% endblock %}

{% block date_widget %}
{% spaceless %}
    {% if widget == 'single_text' %}
         {{ block('field_widget') }}
    {% else %}
        <div {{ block('widget_container_attributes') }}>
            {{ date_pattern|replace({
                '{{ year }}': form_widget(form.year),
            })|raw }}
        </div>
    {% endif %}
{% endspaceless %}
{% endblock date_widget %}
{%extends'::base.html.twig%}
{%form\u主题form\u self%}
{%block body%}
..打印表单(通过应用程序/控制台生成:crud生成)
{%endblock%}
{%block date\u widget%}
{%spaceless%}
{%if widget=='single_text%}
{{block('field_widget')}
{%else%}
{{日期|模式|替换({
“{{year}}”:form_小部件(form.year),
})|原始}}
{%endif%}
{%endspaceless%}
{%endblock日期\小部件%}

将date_小部件块放在body块之外,并在初始扩展后添加以下代码

{% form_theme form _self %}
现在,您的代码应该如下所示

{% extends '::base.html.twig' %}
{% form_theme form _self %}

{% block body %}

....print form (generated though app/console generate:crud)

{% endblock %}

{% block date_widget %}
{% spaceless %}
    {% if widget == 'single_text' %}
         {{ block('field_widget') }}
    {% else %}
        <div {{ block('widget_container_attributes') }}>
            {{ date_pattern|replace({
                '{{ year }}': form_widget(form.year),
            })|raw }}
        </div>
    {% endif %}
{% endspaceless %}
{% endblock date_widget %}
{%extends'::base.html.twig%}
{%form\u主题form\u self%}
{%block body%}
..打印表单(通过应用程序/控制台生成:crud生成)
{%endblock%}
{%block date\u widget%}
{%spaceless%}
{%if widget=='single_text%}
{{block('field_widget')}
{%else%}
{{日期|模式|替换({
“{{year}}”:form_小部件(form.year),
})|原始}}
{%endif%}
{%endspaceless%}
{%endblock日期\小部件%}

啊哈,这似乎奏效了!然而,我的输出看起来是这样的:(年份选择框){{{month}}-{{day}}我将我的代码更新为:{{year}:form_小部件(form.year),“{month}}:”,“{day}:”,-”,这似乎删除了字段,但是我现在在Submitha上得到了一个验证错误,这似乎有效!然而,我的输出看起来是这样的:(年选择框){{{month}}-{{day}我将我的代码更新为:{{year}:form_小部件(form.year),“{month}}:”,“{day}:”,-”,这似乎删除了字段,但是我现在在提交时收到了一个验证错误