sineld / bladeset
A very simple blade extension which allows variables to be set within blade templates.
Installs: 22 342
Dependents: 0
Suggesters: 0
Security: 0
Stars: 44
Watchers: 3
Forks: 4
Open Issues: 0
Requires
- php: >=5.5.9
- illuminate/support: ^5.3
README
This package is heavily inspirated from alexdover/blade-set after this discussion.
A very simple blade extension which allows variables to be set within blade templates.
This versions is for Laravel v. 5-6-7-8-9 and should work with future versions of Laravel, if don't, please mail me.
Usage Examples
@set('myVariable', $existing_variable) // or @set("myVariable", "Hello, World!")
Then you can use the variable $myVariable
in the blade template.
{{ $myVariable }}
You might choose to fetch a bunch of models from your template, for example
@set('myModelList', MyModel::where('something', '=', 1)->paginate(10))
Available Operators [set, var, assign]
@set('username', 'sineld') @var("username", "sineld") @assign('username', 'sineld')
Tip: You can assign your own operator in config file!
Why?
Compare
<?php $myModelList = MyModel::where('something', '=', 1)->paginate(10); ?>
to
@set('myModelList', MyModel::where('something', '=', 1)->paginate(10))
I felt that the use of the @set
was a more elegant solution in the context of blade templates.
Another reason (from github issue page):
An example where setting and keeping track of a variable inside a template using this sytax would be processing a list of things where each thing has a week and you want to set a week header for each group of weeks:
@set('week', 0); @foreach ($things as $thing) @if ($week != $thing->week) WEEK {{ $thing->week }} @set('week', $thing->week) @endif Title: {{ $thing->title }} @endforeach
Installation
Run this command on terminal in your packages root:
composer require sineld/bladeset
or
Require this package in your composer.json
:
"sineld/bladeset": "8.0"
Update composer. This will download the package.
composer update
Add the BladeSetServiceProvider to the providers array in config/app.php
if your projects Laravel version is below 5.5. If you Laravel version is higher or equal to 5.5 you do not need to add the line below to config/app.php
file because package auto discovery is available.
Sineld\BladeSet\BladeSetServiceProvider::class,
(Optional) Publish package config.
php artisan vendor:publish
Then edit app/config/bladeset.php
accoring to your needs.
All done!
Licence
You can use this package under the MIT license
Feedback
If you have any questions, feature requests or constructive criticism then please get in touch.
Twitter - @sineld