Contenido del curso
Fundamentos de Laravel
- 3

Qué es Artisan y cómo automatiza Laravel
04:23 min - 4

Rutas básicas en Laravel con web.php
06:44 min - 5

Cómo retornar vistas Blade en Laravel
07:02 min - 6

Plantillas Blade para vistas sin código repetido
Viendo ahora - 7

Controladores en Laravel con Artisan
07:17 min - 8

Migraciones en Laravel como control de versiones
07:01 min - 9

Modelos y factories en Laravel con datos falsos
06:56 min - 10

Consultas a base de datos con Eloquent
08:26 min - 11

Relaciones entre tablas con belongsTo en Laravel
05:37 min
Manos a la obra con nuestro proyecto
- 12

Revisión de arquitectura MVC en Laravel
02:15 min - 13

Instala el login de Laravel con Breeze
05:41 min - 14

Rutas de login y logout en Laravel Breeze
04:22 min - 15

Rutas y vistas con Route::resource en Laravel
03:59 min - 16

Listado de posts con paginación en Laravel
04:36 min - 17

Formulario para eliminar registros en Laravel
04:53 min - 18

Vistas de creación y edición con formulario compartido
06:49 min - 19

Formulario CRUD reutilizable en Laravel
05:02 min - 20

Guardar registros con relaciones en Laravel
06:06 min - 21

Método update en Laravel sin reescribir código
01:44 min - 22

Validación de formularios en Laravel con old()
04:43 min - 23

Validación unique en Laravel sin duplicados
05:32 min
Trabajemos en el diseño web de nuestro proyecto
- 24

Diseño del header con Tailwind y Laravel
06:38 min - 25

Divisor con gradiente en Tailwind CSS
03:50 min - 26

Construye la vista home de tu blog en Laravel
06:36 min - 27

Sección destacada con posicionamiento absoluto en Tailwind
04:15 min - 28

Diseño de página de publicación con Tailwind
02:33 min - 29

Formulario de búsqueda con Laravel y LIKE
04:18 min - 30

Cómo detectar el problema N+1 en Laravel
06:12 min
Cierre
Plantillas Blade para vistas sin código repetido
Resumen
Cuando trabajas con varias vistas en Laravel y notas que repites la misma estructura HTML una y otra vez, llega el momento de crear una plantilla Blade. Esta técnica te permite centralizar el diseño en un solo archivo y dedicarte únicamente a administrar el contenido de cada página, algo clave para cualquier desarrollador que busque escribir código mantenible.
¿Por qué usar una plantilla Blade en Laravel?
Imagina que tienes tres vistas: home, blog y post. Las tres comparten el mismo encabezado, menú y estructura general. Si necesitas cambiar un enlace del menú, tendrías que editar los tres archivos. Con una plantilla, lo cambias en un solo lugar.
El beneficio real está en tener archivos cortos y fáciles de administrar. Cuando programas una aplicación, escribes el código una vez y lo mantienes muchas veces, así que entre menos repetición tengas, mejor.
¿Qué es una plantilla Blade? Es un archivo
.blade.phpque define la estructura HTML común de tu sitio y deja huecos llamados secciones donde otras vistas inyectan su contenido propio.
¿Cómo creo el archivo template.blade.php?
El primer paso es crear un archivo nuevo dentro de la carpeta de vistas, por ejemplo template.blade.php [01:00]. Dentro colocas la estructura HTML base de Laravel: encabezado, título y un menú con los enlaces que se van a repetir en todo el sitio.
Dentro del body defines un menú básico con dos enlaces, uno hacia el home y otro hacia el blog. Justo debajo agregas la directiva que actuará como contenedor del contenido variable.
blade
<body> <p> <a href="">Home</a> | <a href="">Blog</a> </p> <hr> @yield('contenido') </body>La palabra contenido dentro de @yield es la etiqueta que luego usarás desde otras vistas para inyectar HTML específico de cada página.
¿Cómo extiendo la plantilla desde otras vistas?
En las vistas hijas, como home.blade.php, blog.blade.php y post.blade.php, borras toda la estructura HTML repetida y la sustituyes por dos directivas clave de Blade [02:15].
blade @extends('template')
@section('contenido')
<h1>Bienvenido al Home</h1> <p>Contenido específico de esta vista</p> @endsectionLa directiva @extends indica de qué plantilla hereda la vista, mientras que @section('contenido') define qué HTML se va a inyectar exactamente en el @yield que dejaste reservado.
¿Cuál es la diferencia entre @yield y @section?
@yieldse usa en la plantilla para reservar el espacio.@sectionse usa en la vista hija para llenar ese espacio con contenido específico.
Al repetir este patrón en blog y post, terminas con archivos pequeños donde solo administras lo que cambia, lo cual facilita el mantenimiento a largo plazo.
¿Cómo nombro las rutas para construir los enlaces?
Para que los botones del menú funcionen sin escribir URLs a mano, necesitas darle un nombre a cada ruta en el archivo web.php [03:30]. El método name() se encarga de eso.
php Route::get('/', function () { return view('home'); })->name('home');
Route::get('/blog', function () { return view('blog'); })->name('blog');
Route::get('/post/{slug}', function ($slug) { return view('post', ['slug' => $slug]); })->name('post');
Fíjate que la ruta de post recibe un parámetro slug, porque cada publicación necesita identificarse con un valor único en la URL.
¿Cómo uso la función route() en mis enlaces?
Una vez que las rutas tienen nombre, puedes generar los enlaces de forma dinámica con la función route() dentro de las llaves dobles de Blade. En tu plantilla actualizas el menú así:
blade <a href="{{ route('home') }}">Home</a> | <a href="{{ route('blog') }}">Blog</a>
Laravel verifica si el nombre que pasas existe y construye la URL completa por ti. Si haces clic derecho en el navegador y revisas el HTML generado, verás los enlaces ya armados correctamente.
Para los enlaces de cada post dentro de la vista de blog, pasas el parámetro como segundo argumento [04:45]:
blade <a href="{{ route('post', $slug) }}">PHP</a> <a href="{{ route('post', $slug) }}">Laravel</a>
De esta forma, al hacer clic en PHP o en Laravel, el navegador te lleva al post correspondiente con su slug en la URL.
¿Por qué usar route() en vez de escribir la URL directa? Porque si cambias la URL en el archivo de rutas, todos los enlaces que usen el nombre de la ruta seguirán funcionando sin que tengas que editarlos uno por uno.
¿Qué gano al trabajar con plantillas y rutas con nombre?
Al combinar plantillas Blade con rutas nombradas obtienes tres ventajas concretas que vas a notar en cada proyecto:
- Reducción de código duplicado en tus vistas.
- Mantenimiento centralizado del diseño y los enlaces.
- Escalabilidad para agregar nuevas páginas sin reescribir estructura.
Ahora te toca a ti replicar este ejercicio. Crea tu propia plantilla, define al menos dos vistas hijas y conecta los enlaces con route(). Cuéntame en los comentarios qué otros bloques reutilizables te gustaría aislar en tu plantilla.