Переменная $loop в Blade в Laravel

При переборе массива с помощью foreach внутри цикла доступна специальная переменная $loop. Она обеспечивает доступ к некоторой полезной информации об итерациях цикла.

Посмотрим на примерах. Пусть мы перебираем циклом некоторый массив:

@foreach ($arr as $elem) {{ $elem }} @endforeach

Давайте на примере этого массива изучим возможности переменной $loop.

Граничные итерации

Можно также узнать первая это или последняя итерация цикла:

@foreach ($arr as $elem) @if ($loop->first) первая итерация @endif @if ($loop->last) последняя итерация @endif {{ $elem }} @endforeach

Четность

Можно также узнать первая это или последняя итерация цикла:

@foreach ($arr as $elem) @if ($loop->odd) нечетная итерация @endif @if ($loop->even) четная итерация @endif {{ $elem }} @endforeach

Итерации

Можно узнать индекс текущей итерации (начинается с нуля):

@foreach ($arr as $elem) {{ $loop->index }} {{ $elem }} @endforeach

Можно узнать номер текущей итерации (начинается с единицы):

@foreach ($arr as $elem) {{ $loop->iteration }} {{ $elem }} @endforeach

Можно узнать, сколько итераций осталось:

@foreach ($arr as $elem) {{ $loop->remaining }} {{ $elem }} @endforeach

Количество элементов

Можно узнать количество элементов в перебираемом массиве:

@foreach ($arr as $elem) {{ $loop->count }} {{ $elem }} @endforeach

Практические задачи

Из действия в представление передается массив со строками. Выведите элементы этого массива в виде списка ul. Сделайте так, чтобы перед значением элемента, выводился еще и порядковый номер итерации, начиная с 0.

Модифицируйте предыдущую задачу так, чтобы порядковый номер итерации начинался с 1.

Модифицируйте предыдущую задачу так, чтобы для первой li добавлялся CSS класс first, а для последней - класс last.

Из действия в представление передается массив с числами. Выведите каждый элемент этого массива в своем теге b, а три последних элемента массива - в теге i.