Полный цикл в digital

Цикл @foreach Blade

В данном уроке мы с вами разберем директиву @foreach шаблонизатора Blade, представляющую собой цикл для перебора массива.

Рассмотрим работу данной директивы на практическом примере. Пусть из действия в представление передается какой-то массив $arr.

Переберем этот массив циклом и выведем его элементы на экран:

@foreach ($arr as $key => $elem)
	{{ $elem }}
@endforeach

Давайте выведем каждый элемент массива в отдельном абзаце:

@foreach ($arr as $key => $elem)
	<p>{{ $elem }}</p>
@endforeach

Давайте выведем элементы нашего массива в виде списка ul:

<ul>
@foreach ($arr as $key => $elem)
    <li>{{ $elem }}</li>
@endforeach
</ul>

Ключи массива

Можно также получить в отдельную переменную ключи массива, аналогично циклу foreach в PHP:

@foreach ($arr as $key => $elem)
	{{ $key }} {{ $elem }}
@endforeach

Часто бывает так, что хотелось бы вывести рядом с элементами массива их порядковые номера, но не очень удобно то, что нумерация в массивах начинается с 0. Для решения проблемы можно просто прибавлять единицу на выводе ключа:

@foreach ($arr as $key => $elem)
	{{ $key + 1 }} {{ $elem }}
@endforeach

Условия и циклы

Директиву @foreach можно комбинировать с директивой @if. Выведем, например только положительные элементы массива:

<ul>
@foreach ($arr as $elem)
    @if ($elem > 0)
        <li>{{ $elem }}</li>
    @endif
@endforeach
</ul>

А теперь, наоборот выведем список только в том случае, если количество элементов в массиве больше нуля:

@if (count($arr) > 0)
<ul>
    @foreach ($arr as $elem)
        <li>{{ $elem }}</li>
    @endforeach
</ul>
@endif

Переменная $loop

При переборе массива с помощью 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
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг