advmaker/blade-loop
blade-loop
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.
Install
Via Composer
$ composer require advmaker/blade-loop
And add provider to config/app.php
'providers' => [
//...
Advmaker\BladeLoop\BladeLoopServiceProvider::class,
//...
]
Explanation
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,revindex1andrevindexvariables are only available for PHP arrays, or objects that implement the Countable interface.
Usage
@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
Change log
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Contributing
Please see CONTRIBUTING and CONDUCT for details.
Security
If you discover any security related issues, please email github@advmaker.net instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.
Related Packages
Powerful PHP database abstraction layer (DBAL) with many features for database s...
Laravel Serializable Closure provides an easy and secure way to serialize closur...
Cli error handling for console/command-line PHP applications.