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

Создание своего условного оператора типа 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

Вот и все на этом.

Всем удачи.


Саша Митрахович 20.12.2018 13:03
Загрузка...

Поделиться с друзьями:

Похожие статьи:

Коментарии: (0)

Вы можете оставить первый комментарий к статье

Каптча