Создание своего условного оператора типа if для шаблонизатора Blade в Laravel

Недавно столкнулся с необходимостью создания в проекте на Laravel пользовательской условной директивы для шаблонизатора blade.
Для создания своего условного оператора для Blade необходимо зарегистрировать новую условную директиву в Сервис-провайдере. Это можно сделать в файле
app/Providers/AppServiceProvider.php
А можно зарегистрировать отдельный Сервис-провайдер для шаблонизатора Laravel, к примеру такой
app/Providers/BladeServiceProvider.php
Делается это консольной командой
php artisan make:provider BladeServisProvider
Далее в файле config/app.php нужно прописать такую строку
'providers' => [
. . . .
AppProvidersBladeServiceProvider::class,
],
Теперь можно создавать свои директивы Blade в этом Сервис-провайдере.
Пример создания условия @admin
Код файла:
app/Providers/BladeServiceProvider.php
<?php namespace AppProviders; use IlluminateSupportServiceProvider; use IlluminateSupportFacadesBlade; class BladeServiceProvider extends ServiceProvider { public function boot() { Blade::if('admin', function() {return Auth::check() && Auth::user()->role == "admin" ? true : false; }); } }
Теперь в шаблонах можно выполнять созданный условный оператор @admin
@admin yes @else no @endadmin
Вот и все на этом.
Всем удачи.