Директива break
Директива break применяется внутри циклов в Blade-шаблонах
для немедленного прекращения итерации. Она работает аналогично
одноимённой конструкции в PHP, но адаптирована для использования
в шаблонизаторе. Директива может использоваться без условий или
в сочетании с директивой if для условного прерывания.
Также поддерживается передача числового аргумента для выхода
из нескольких вложенных циклов.
Синтаксис
@break
@if ($condition)
@break
@endif
@break(2) {{-- Выход из двух вложенных циклов --}}
Пример
Давайте выведем элементы массива до первого встреченного
значения 'c':
@php
$arr = ['a', 'b', 'c', 'd', 'e'];
@endphp
<ul>
@foreach ($arr as $elem)
@if ($elem == 'c')
@break
@endif
<li>{{ $elem }}</li>
@endforeach
</ul>
Результат выполнения кода:
<ul>
<li>a</li>
<li>b</li>
</ul>
Пример
Давайте прервём выполнение цикла при достижении определённого условия:
@php
$users = ['user1', 'user2', 'user3', 'user4'];
@endphp
@foreach ($users as $user)
@if ($loop->iteration == 3)
@break
@endif
<p>User: {{ $user }}</p>
@endforeach
Результат выполнения кода:
<p>User: user1</p>
<p>User: user2</p>
Пример
Давайте используем директиву break для выхода
из двух вложенных циклов:
@php
$matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
@endphp
@foreach ($matrix as $row)
@foreach ($row as $num)
@if ($num == 5)
@break(2)
@endif
{{ $num }}
@endforeach
@endforeach
Результат выполнения кода:
"1 2 3 4"
Пример
Давайте используем директиву break в комбинации
с директивой forelse для обработки пустого массива:
@php
$items = ['item1', 'item2', 'item3'];
@endphp
@forelse ($items as $item)
@if ($item == 'item2')
@break
@endif
<p>{{ $item }}</p>
@empty
<p>No items found</p>
@endforelse
Результат выполнения кода:
<p>item1</p>