Шаблоны blade используются для представления данных, нам нужно добавить некоторые проверки и If структуры. Один из примеров это цикл @foreach, когда нужно выполнить какие-либо действия с первым или последним элементом массива. Blade не поддерживает эту функциональность самостоятельно, итак, что же нам делать?
Под капотом, Blade-файлы в действительности преобразуются в чистый PHP. Итак, хитрость в том, что мы можем использовать любую функцию из PHP. И с массивами у нас есть две полезных функции что бы получить первый и последний элементы массива:
- end($array) – перемещает внутренний указатель массива к последнему элементу и возвращает его значение.
- reset($array) – перемещает внутренний указатель массива к первому элементу и возвращает его значение.
Итак, как это выглядит в настоящем примере с Blade? Предположим, мы хотим скрыть каждый элемент div, кроме первого:
@foreach ($menu as $item)
<div @if ($item != reset($menu)) class=«hidden» @endif>
<h2>{{ $item->title }}</h2>
</div>
@endforeach
Похожий пример — что если мы хотим добавить CSS-класс к последнему элементу меню?
@foreach ($menu as $item)
<div @if ($item == end($menu)) class=«no_margin» @endif>
<h2>{{ $item->title }}</h2>
</div>
@endforeach
Это все. Как вы можете видеть Blade не только шаблонизатор, он обладает мощью структур и функций PHP
Перевод