自定义一个单独的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

链接地址: http://www.djcxy.com/p/81399.html

上一篇: Customize an individual Field symfony2.8

下一篇: How to create a custom Symfony2 Twig form template block