Команды для шаблона

Директивы

Директивы (функции, параметры) создаются внутри файла app/Providers/AppServiceProvider.php.

На примере ниже создаётся директива @upper().

# app/Providers/AppServiceProvider.php

namespace App\Providers;

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

class AppServiceProvider extends ServiceProvider
{

  public function boot()
  {
    // создание директивы @upper
    Blade::directive('upper', function($var) {
      return '<?php echo mb_strtoupper('.$var.'); ?>';
    });
  }

  // …

}

Теперь в шаблонах можно выполнять @upper().

@upper('Laravel') <!-- LARAVEL -->

Данные для @upper() кешируются, поэтому после правок рекомендуется удалять кеш в папке «storage/framework/views/».

Условия

Пример создания условия @day().

# app/Providers/AppServiceProvider.php

namespace App\Providers;

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

class AppServiceProvider extends ServiceProvider
{

  public function boot()
  {
    // создание условия @day
    Blade::if('day', function($var) {
      return $var == date('l', time());
    });
  }

  // …

}

Теперь в шаблонах можно выполнять @day().

@day('Monday')
  <p>Сегодня понедельник</p>
@elseday('Saturday')
  <p>Сегодня суббота</p>
@endday