Laravel Blade::if
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