1

symfony2とtwigを使用してdate_widgetを変更しようとしています。年だけを表示したいと思います。

年セレクターのみでSymfony2の日付入力を読み、フォームのテンプレートに関する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ブロックの外に置き、最初の拡張後に次のコードを追加します

{% 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 に答える