自定义一个单独的Field symfony2.8
我有一个变量从一个控制器呈现给一个树枝文件。 我定制了我的表单小部件..这个变量在块之外很好运行,但是在块中我有这个错误
CalendarBundle中不存在变量“date_seance”:日历:第55行的add_seance_candidate.html.twig
第55行是if
{{ date_seance }} ( here it works well)
<div class="form-group">
{% form_theme form _self %}
{% block _autoecole_calendarbundle_calendar_start_widget %}
{% set type = type|default('text') %}
<input type="{{ type }}" {{ block('widget_attributes') }} {% if date_seance is not empty %} value="{{ date_seance }}" disabled="disabled" class="form-control" {% endif %} class="form-control" placeholder="Cliquer pour entrer la date du début..." />
{% endblock %}
{{ form_errors(form.start) }}
( here i display the widget start input text after customization )
{{ form_widget(form.start) }}
</div>
这是symfony食谱中的教程..如何自定义一个单独的字段
表单主题块具有独立的范围,这意味着它们不会继承父变量,除非明确指定。
在这里,您可能想用{{ form_widget(form.start, {'date_seance' : date_seance}) }}
替换{{ form_widget(form.start) }}
,以便将您的变量显式传递给您的小部件。
我可以猜测,date_seance变量是在范围内创建的,这意味着像{%block%} {%nav%} {%for%}这样的变量无法像这样从外部访问此变量:
{% block A %}
{% set var = 'apple' %}
{{ var }} {# This prints apple #}
{% endblock %}
{% block B %}
{{ var }} {# This doesn't prints anything, since var isn't defined #}
{% endblock %}
为了使一个变量可以在范围外访问,你需要在之前定义它:
{% set var = 'apple' %}
{% block A %}
{{ var }} {# This prints apple #}
{% endblock %}
在你的情况下,尝试在任何范围之外定义date_seance
上一篇: Customize an individual Field symfony2.8
下一篇: How to create a custom Symfony2 Twig form template block