Как разбить петлю foreach в виде ларавельного лезвия?
У меня такой цикл:
@foreach($data as $d)
@if(condition==true)
{{$d}}
// Here I want to break the loop in above condition true.
@endif
@endforeach
Я хочу разбить цикл после отображения данных, если условие выполнено.
Как это может быть достигнуто в виде ларавельного лезвия?
Ответы
Ответ 1
Из документов Blade:
При использовании циклов вы также можете завершить цикл или пропустить текущую итерацию:
@foreach ($users as $user)
@if ($user->type == 1)
@continue
@endif
<li>{{ $user->name }}</li>
@if ($user->number == 5)
@break
@endif
@endforeach
Ответ 2
Основное использование
По умолчанию у blade- @break
нет @break
и @continue
которые могут быть полезны. Так что это включено.
Кроме того, переменная $loop
вводится внутри циклов (почти) точно так же, как Twig.
Основной пример
@foreach($stuff as $key => $val)
$loop->index; // int, zero based
$loop->index1; // int, starts at 1
$loop->revindex; // int
$loop->revindex1; // int
$loop->first; // bool
$loop->last; // bool
$loop->even; // bool
$loop->odd; // bool
$loop->length; // int
@foreach($other as $name => $age)
$loop->parent->odd;
@foreach($friends as $foo => $bar)
$loop->parent->index;
$loop->parent->parentLoop->index;
@endforeach
@endforeach
@break
@continue
@endforeach
Ответ 3
вы можете так разбиться
@foreach($data as $d)
@if($d=="something")
{{$d}}
@if(codition)
@break
@endif
@endif
@endforeach
Ответ 4
По умолчанию у Blade нет @break, но вы можете использовать эти расширения Laravel Blade, чтобы получить то, что вы хотите:
http://robin.radic.nl/blade-extensions/directives/foreach.html