Ya sabemos que el motor de plantillas de Laravel es Blade, y que éste nos ofrece mucha funcionalidad de base, por ejemplo el condicional @auth para saber si el usuario está identificado, @forelse para recorrer datos, @if para comprobar ciertas condiciones etcétera.
Imagina que quieres comprobar en Blade si un usuario es admin dependiendo de su rol, para ello normalmente haríamos lo siguiente.
@if(auth()->user()->isAdmin())
@else
@endifObviamente ese código es más que correcto, pero Laravel 5 nos ofrece una alternativa mucho mejor. @if personalizados en Blade Para crear nuestro primer if personalizado vamos a abrir el archivo AppServiceProvider.php y añadimos el siguiente código al método boot.
<?php
Blade::if('admin', function() {
return auth()->user()->isAdmin();
});
Con el trozo de código anterior hemos generado una nueva directiva en Blade llamada @admin, y para utilizarla simplemente debemos hacer lo siguiente.
@admin
Eres admin
@else
No eres admin
@endifDirectivas personalizadas con parámetros en Blade Si además necesitas pasar parámetros a tus nuevas directivas, simplemente debemos escribir tu directiva de la siguiente forma.
<?php
Blade::if('env', function ($environment) {
return app()->environment($environment);
});Y para utilizarla simplemente añade el siguiente código dentro de un archivo blade.
@env('local')
Entorno Local
@else
Entorno es distinto a local
@endenvAsí de sencillo es extender la funcionalidad de Blade con el desarrollo de if personalizados.