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


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!



<?php $myModelList = MyModel::where('something', '=', 1)->paginate(10); ?>


@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)

  Title: {{ $thing->title }}


Run this command on terminal in your packages root:

composer require sineld/bladeset


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.


(Optional) Publish package config.

php artisan vendor:publish

Then edit app/config/bladeset.php accoring to your needs.

All done!


You can use this package under the MIT license


If you have any questions, feature requests or constructive criticism then please get in touch.

Twitter - @sineld