This package inspired from https://github.com/RobinRadic/blade-extensions but instead of doing multiple things with blade engine (ie: markdown parsing, multiple extensions, etc) it just adds @loop directive to support twig-like loop and loop control directives.
Via Composer
$ composer require advmaker/blade-loop
And add provider to config/app.php
'providers' => [
//...
Advmaker\BladeLoop\BladeLoopServiceProvider::class,
//...
]
By default, before v5.2.12 blade doesn't have @break
and @continue
which are useful to have. And before version 5.2.22 it's not supported conditions. So that's included.
Furthermore, the $loop
variable is introduced inside loops, (almost) exactly like Twig. Description table:
Variable | Description |
---|---|
$loop->index1 | The current iteration of the loop. (1 indexed) |
$loop->index | The current iteration of the loop. (0 indexed) |
$loop->revindex1 | The number of iterations from the end of the loop (1 indexed) |
$loop->revindex | The number of iterations from the end of the loop (0 indexed) |
$loop->first | True if first iteration |
$loop->last | True if last iteration |
$loop->length | The number of items in the sequence |
$loop->parent | The parent context |
Note:
length
,last
,revindex1
andrevindex
variables are only available for PHP arrays, or objects that implement the Countable interface.
@loop($array 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 --}}
@loop($val as $inner_key => $val)
{{ $loop->parent->odd; }}
{{ $loop->parent->index; }}
@endloop
@break(false)
@continue($loop->index === $loop->revindex)
@endloop
Please see CHANGELOG for more information what has changed recently.
$ composer test
Please see CONTRIBUTING and CONDUCT for details.
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.