Laravel Blade::if

Publicado em 14 de Aug 2017.

O novo Blade que esta no Laravel 5.5 adicionou o suporte a if customizado na views

A sintaxe é algo mais ou menos assim

AppServiceProvider::boot()

use Illuminate\Support\Facades\Blade;

Blade::if('admin', function () {
    return auth()->check() && auth()->user()->isAdmin();
});

O novo Blade::if() é muito conveniente quando precisamos repetir divesas vezes nos layout.

@admin
    <a href="{{ route('super.secret') }}">Página Secreta</a>
@else
    Bem vindo visitante. <a href="{{ route('login') }}">Login</a>
@endadmin

Em versões anteriores do Laravel, você tinha que escrever um pouco mais de código para resolver o problema acima.

Agora no Laravel 5.5 é algo muito simples.

Blade::if('prod', function () {
    return app()->environment('production');
});

Você pode usar também argumentos.

Blade::if('env', function ($env) {
    return app()->environment($env);
});

Veja como fica no template

@env('production')
  <script src="some-prod.js"></script>
@endenv

Fonte: https://laravel-news.com/bladeif