Geek Culture

A new tech publication by Start it up (https://medium.com/swlh).

Follow publication

Laravel — P68: Defining Custom Directives in Blade

Dino Cajic
Geek Culture
Published in
2 min readMar 16, 2023

Dino Cajic on defining custom directives in Laravel Blade

How many times have you wished that a specific directive existed in Blade? If the answer to that question is “many,” then do I have a surprise for you. You can create your own directives in Blade.

First, you need to create a service provider using the php artisan make:provider command. This provider will register your Blade directives with Laravel.

# php artisan make:provider CustomBladeServiceProvider

INFO Provider [app/Providers/CustomBladeServiceProvider.php] created successfully.

#
<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class CustomBladeServiceProvider extends ServiceProvider
{
/**
* Register services.
*
* @return void
*/

public function register()
{
//
}

/**
* Bootstrap services.
*
* @return void
*/

public function boot()
{
//
}
}

Next, you need to register the provider in the config/app.php file.

'providers' => [

/*
* Laravel Framework Service Providers...
*/

// ...
App\Providers\CustomBladeServiceProvider::class,

In your CustomBladeServiceProvider class, you can define your custom Blade directive using the Blade::directive method.

<?php

namespace App\Providers;

use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;

class CustomBladeServiceProvider extends ServiceProvider
{
// ...

/**
* Bootstrap services.
*
* @return void
*/

public function boot()
{
Blade::directive('money', function ($money) {
return "$<?php echo number_format($money, 2); ?>";
});
}
}

You can now use your custom directive in your Blade templates like this:

<h1>
@money(2500)
</h1>

We simply need a route now to see it in action.

Route::get('/custom-directive', function () {
return view('custom-directive.index');
});

The response that you get is: $2,500.00.

Alternate Approach

Don’t want to create a service provider? You can add the directive to your…

Create an account to read the full story.

The author made this story available to Medium members only.
If you’re new to Medium, create a new account to read this story on us.

Or, continue in mobile web

Already have an account? Sign in

Dino Cajic
Dino Cajic

Written by Dino Cajic

Author of An Illustrative Introduction to Algorithms. IT Leader with a B.S. in Computer Science, a minor in Biology, and a passion for learning.

No responses yet

Write a response