Skip to main content

Introducción

Blade es el motor de plantillas simple pero potente que incluye Laravel. A diferencia de algunos motores de plantillas de PHP, Blade no limita el uso de código PHP puro dentro de las plantillas. Todas las plantillas Blade se compilan a código PHP y se cachean, por lo que apenas añade sobrecarga a la aplicación. Los archivos de plantilla Blade usan la extensión .blade.php y normalmente se guardan en el directorio resources/views.

Flujo de compilación de Blade

Muestra cómo un archivo .blade.php se convierte en una respuesta HTML. Una vez compilado, el archivo se cachea; las siguientes solicitudes de la misma plantilla saltan la compilación.

Mostrar datos

Para mostrar datos pasados a la vista, encierra la variable entre dobles llaves.
{{ }} de Blade pasa automáticamente el valor por htmlspecialchars de PHP para prevenir ataques XSS.
También puedes mostrar el resultado de funciones PHP.

Mostrar sin escapar

Para mostrar sin escapar, usa la sintaxis {!! !!}.
Cuando muestres datos introducidos por el usuario, usa siempre {{ }} para mantener el escape automático. Usar {!! !!} con entrada no confiable provoca vulnerabilidades XSS.

Convivencia con frameworks JavaScript

Si tu framework JavaScript también usa llaves, escapa el renderizado de Blade con @.
Blade elimina la @ y {{ name }} llega tal cual al navegador para que lo procese el framework de JavaScript.
Si dudas entre centrarte en Blade o ampliar hacia Livewire o Inertia, consulta Frontend.

Directivas de Blade

Condicionales (if)

@unless permite escribir “salvo que…”.
Para comprobar si una variable está definida o no es null, usa @isset y @empty.

Directivas de autenticación

Switch

Bucles

Blade ofrece directivas cómodas para bucles.
Dentro del bucle, @break y @continue controlan el flujo.
También se puede pasar la condición directamente a la directiva.

Variable de bucle

Dentro de @foreach puedes usar $loop para obtener información del bucle.

Comentarios

Los comentarios de Blade no aparecen en la página renderizada.

Layouts

Layout con componentes

Para crear layouts en Laravel se recomiendan los componentes Blade. Primero, crea el componente de layout.
Después, crea una vista que use ese layout.

Layout con herencia de plantillas

La forma clásica usa herencia con @extends, @section y @yield. Definición del layout padre:
Uso del layout en la vista hija:
Con @parent puedes conservar el contenido del @section padre y añadir más.

Incluir subvistas

@include incrusta una vista Blade dentro de otra. Todas las variables disponibles en la vista padre lo estarán también en la incluida.
También puedes pasar variables adicionales.

Protección CSRF en formularios

En formularios HTML que envíen POST, PUT, PATCH o DELETE en rutas del archivo web, incluye siempre @csrf.
Para enviar PUT, PATCH o DELETE desde un formulario, usa @method.
Consulta Protección CSRF para los detalles operativos, como la validación de Origin y las cabeceras X-CSRF-TOKEN / X-XSRF-TOKEN.

Resumen

Resumen de las funcionalidades principales de Blade.
{{ $variable }} para mostrar con escape; {!! $variable !!} sin escape.
@if, @elseif, @else, @endif, @unless, @isset, @empty, @auth, @guest.
@for, @foreach, @forelse, @while y la variable $loop.
Basados en componentes (<x-layout> con {{ $slot }}) o con herencia (@extends, @section, @yield).
Reutilización de vistas con @include.
Última modificación el 13 de julio de 2026