Ошибка шаблона формы Symony2 - переменная "виджет" не существует - PullRequest
1 голос
/ 02 декабря 2011

Я пытаюсь изменить date_widget, используя symfony2 и веточку. Я хотел бы показать только год.

После прочтения Ввод даты в 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 %}

Есть мысли? Спасибо!

1 Ответ

1 голос
/ 02 декабря 2011

поместите блок 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

...