Saltar al contenido

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 
 
@endif

Obviamente 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
@endif

Directivas 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
@endenv

Así de sencillo es extender la funcionalidad de Blade con el desarrollo de if personalizados.

Rutas de aprendizaje