Ответ 1
Попробуйте сделать это следующим образом:
#set($start = 0)
#set($end = 4)
#set($range = [$start..$end])
#foreach($i in $range)
doSomething
#end
Код не был протестирован, но он должен работать следующим образом.
Я уже опубликовал аналогичный вопрос неделю назад в Как использовать цикл "для" в шаблоне скорости?.
Итак... в принципе я не могу использовать цикл "для" в шаблоне скорости.
Скажем, у меня есть переменная, которая содержит целое число 4. Я хочу отображать что-то четыре раза с использованием этой переменной. Как это сделать в шаблоне скорости?
Попробуйте сделать это следующим образом:
#set($start = 0)
#set($end = 4)
#set($range = [$start..$end])
#foreach($i in $range)
doSomething
#end
Код не был протестирован, но он должен работать следующим образом.
Вам не нужно использовать #set
как принятый ответ. Вы можете использовать что-то вроде этого:
#foreach($i in [1..$end])
LOOP ITERATION: $i
#end
Если вы хотите индексировать нуль, вам нужно использовать один #set
, потому что вы не можете вычесть его в пределах оператора диапазона:
#set($stop = $end - 1)
#foreach($i in [0..$stop])
LOOP ITERATION: $i
#end
Чтобы добавить еще один вариант ответа Stephen Ostermiller, вы также можете создать цикл с нулевым индексом, используя $foreach.index
. Если вы хотите выполнить цикл $n
раз:
#foreach($unused in [1..$n])
zero indexed: $foreach.index
#end
здесь $unused
не используется, и вместо этого мы используем $foreach.index
для нашего индекса, который начинается с 0.
Мы начинаем диапазон в 1 как включительно, и поэтому он будет циклически с $unused
быть [1, 2, 3, 4, 5], тогда как $foreach.index
является [0, 1, 2, 3, 4 ].
Подробнее см. руководство пользователя.