Объединить вывод из файла шаблона внутри ветки для цикла к переменной? - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть ситуация, когда мне нужно include файл шаблона внутри другого шаблона и вывести его в цикле for.Однако у меня проблема в том, что он выводится в контейнер, и мне нужен только один контейнер для рендеринга, но мне нужен включенный шаблон для рендеринга на всех итерациях цикла.

{% for details in array %}

  {% set data_details %}
    {{ include('data.html.twig') }}
  {% endset %}

  <!-- Other HTML needed in the loop -->

  {% if loop.first %}
    <tr class="table-row">
      <td>
        {{ data_details | raw }}
      </td>
    </tr>
  {% endif %}

{% endfor %}

Как вывидно, {% if loop.first %} предотвращает повторение контейнера.Но мне нужно data.html.twig, чтобы зацикливаться на каждой итерации и добавлять HTML-код к переменной data_details, но эта переменная содержит только последнюю итерацию.Я не настолько хорошо осведомлен о Твиге, так что, возможно, я поступаю неправильно.Документация гласит, что если вы что-то обернете в set, это «захватит» вывод, но по какой-то причине этого не происходит.

1 Ответ

0 голосов
/ 26 апреля 2018

Вы близки, итерация перезаписывает уже установленную переменную.Чтобы добавить уже установленную переменную, вы можете повторить / вывести переменную в обертке, чтобы перехватить / объединить ее

  {% set data_details %}
    {{ data_details | default('') }}
    {{ include('data.html.twig') }}
  {% endset %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...