1

我正在尝试使用 symfony2 和 twig 更改 date_widget。我想只显示年份。

在阅读了仅带有年份选择器的 Symfony 2 日期输入和 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 %}

有什么想法吗?谢谢!

4

1 回答 1

1

将 date_widget 块放在 body 块之外,并在初始 extends 之后添加以下代码

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

http://symfony.com/doc/current/book/forms.html#form-theming

于 2011-12-02T12:32:15.433 回答