我正在尝试使用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 %}
有什么想法?谢谢!
答案 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 %}