Почему моя переменная существует в блоке, а не в другом?

#php #symfony #twig

#php #symfony #twig

Вопрос:

У меня есть шаблон с переменной ‘category’.

В какой-то момент я отправляю эту переменную во встроенный шаблон следующим образом :

 {% embed "AtgpTrackerBundle:Ticket:/_list.html.twig" with {"table": table, "category": category} %}
  

Этот шаблон _list расширяется из шаблона defaultTable :

 {% extends "AtgpTrackerBundle::Table/_defaultTable.html.twig" %}
  

в котором есть некоторые блоки :

 <thead>
    {% block tableHead %}
        <tr>
            //some code
        </tr>
    {% endblock tableHead %}
</thead>    
<tbody id="{{ table.bodyId }}">
    {% block tableBody %}
        //some code
    {% endblock tableBody %}
</tbody>
  

Итак, в шаблоне _list я перезаписываю некоторые блоки, используя переменную ‘category’.

Все работает нормально, когда я использую категорию в блоке tableHead. Когда я использую его в tableBody, у меня возникает исключение «категория переменной не существует».

Что меня беспокоит, так это то, что когда я пытаюсь сбросить категорию в блоке tableBody, она действительно отображается! Но у меня все еще есть ошибка, указывающая мне строку, где я написал дамп.

ОТРЕДАКТИРУЙТЕ, чтобы прояснить мой вопрос: например, если я попытаюсь перезаписать приведенные выше блоки следующим образом :

 {% block tableHead %}
    {{dump(category)}}
    {{category}}
{% endblock %}

{% block tableBody %}
    {{dump(category)}}
    {{category}}  
{% endblock %}
  

Оба дампа работают нормально, но второй отправляет исключение «категория переменной не существует», а строка после не обрабатывается. Кажется, я просто не могу использовать категорию в блоке tableBody.

Я не могу понять, как объяснить это поведение, которое кажется мне действительно странным…

Комментарии:

1. Что это за содержимое _columnCell.html.twig ?

2. Трудно определить проблему, поскольку я не вижу, чтобы вы category где-нибудь использовали?

3. @DarkBee, на самом деле я не использую категорию в этом коде, но я перезаписываю эти блоки в другом шаблоне. Я обновил свой вопрос и надеюсь, что теперь он понятнее.

4. Вы уверены, что не используете где-то там макрос? Потому что то, что вы пытаетесь сделать, должно работать просто отлично

5. Да, я подтверждаю, что я не использую макросы. Что еще может помешать такому коду?