Ошибка шаблона формы Symony2 - переменная «виджет» не существует
-
27-10-2019 - |
Вопрос
Я пытаюсь изменить date_widget, используя Symfony2 и Twig. Я хотел бы показать только год.
После чтения Symfony 2 Date Date ввод только с выбором года и глава книги 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 %}
Какие-нибудь мысли? Спасибо!
Решение
Поместите блок date_widget за пределами блока тела и добавьте следующий код после начального расширения
{% 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 %}
Не связан с StackOverflow