Symony2表格模板错误 - 变量“小部件”不存在

时间:2011-12-02 03:07:45

标签: symfony twig formbuilder

我正在尝试使用symfony2和twig更改date_widget。我想展示一年。

在阅读Symfony 2 date input with only year selector和关于模板表单的symfony2书籍章节之后,我已将date_widget块复制到我的模板中,并收到错误:

变量“widget”在bundle ....中不存在。

这是我模板中的代码:

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

有什么想法?谢谢!

1 个答案:

答案 0 :(得分:1)

将date_widget块放在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 %}

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