Как получить случайные значения с помощью веточки, включая один и тот же файл несколько раз - PullRequest
0 голосов
/ 22 мая 2018

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

У меня есть шаблон:

<div class="include-1">
  {% include 'include.twig' %}
</div>
<div class="include-2">
  {% include 'include.twig' %}
</div>
<div class="include-3">
  {% include 'include.twig' %}
</div>

Внутри файла include.twig Iиметь:

<span>
  {{ random(10) }}
</span>

Ожидаемый результат (числа в диапазоне должны быть случайными в диапазоне от 0 до 10):

<div class="include-1">
  <span>1</span>
</div>
<div class="include-2">
  <span>2</span>
</div>
<div class="include-3">
  <span>3</span>
</div>

Фактический результат (первый включает получить случайное значение, но затемэто просто "кешируется"):

<div class="include-1">
  <span>1</span>
</div>
<div class="include-2">
  <span>1</span>
</div>
<div class="include-3">
  <span>1</span>
</div>

Я проверял, включал, вставлял и т. д., но безрезультатно.Я ищу решение на основе веточки.Не могу коснуться PHP.Как запасной вариант, я могу сделать это с помощью JS, но мне было интересно, можно ли сделать это с помощью Twig.

Вопрос:

Есть ли способ заставить Twig повторно выполнить рендерингвключать перед каждым включать?

1 Ответ

0 голосов
/ 24 мая 2018

Попробуйте передать функцию случайных чисел в качестве значения для каждого из ваших операторов включения, например:

<div class="include-1">
    {% include 'include.twig' with {'random': random(10) } %}
</div>

Затем внутри вашего файла include.twig:

<span>{{ random }}</span>

Thisсгенерирует случайное число для каждого включения, которое вы делаете, и должно дать вам результат, который вам нужен.

...