sineld / bladeset by sineld

A very simple blade extension which allows variables to be set within blade templates.
22,069
44
3
Package Data
Maintainer Username: sineld
Maintainer Contact: sineld@gmail.com (Sinan Eldem)
Package Create Date: 2016-01-30
Package Last Update: 2022-08-30
Home Page: http://packalyst.com/packages/package/sineld/bladeset
Language: PHP
License: MIT
Last Refreshed: 2024-04-18 03:04:56
Package Statistics
Total Downloads: 22,069
Monthly Downloads: 44
Daily Downloads: 0
Total Stars: 44
Total Watchers: 3
Total Forks: 4
Total Open Issues: 0

Laravel 5 Blade Variable Assign In Template

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 version is for Laravel 5.6 and should work with latest version of Laravel, if don't please mail me.

See master branch for latest release of Laravel.

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": "^5.6"

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