sineld/bladeset

A very simple blade extension which allows variables to be set within blade templates.

v5.6.0 2018-03-07 07:30 UTC

This package is auto-updated.

Last update: 2021-07-05 17:00:15 UTC


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. 6-7 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": "^6.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