Configuración de Vistas en Laravel con Blade

Clase 5 de 31Curso de Introducción a Laravel 9

Contenido del curso

Fundamentos de Laravel

Manos a la obra con nuestro proyecto

Trabajemos en el diseño web de nuestro proyecto

Resumen

Pasar de retornar texto plano a mostrar vistas completas es un paso fundamental para construir aplicaciones web reales con Laravel. Aquí se explica cómo crear vistas, enviar datos desde las rutas y aprovechar Blade, el motor de plantillas que hace tu código más limpio y expresible.

¿Cómo se retorna una vista en lugar de texto?

En lugar de devolver una cadena de texto desde una ruta, Laravel ofrece la función view() [0:30]. Esta función recibe como argumento el nombre de la vista que deseas mostrar. Por ejemplo, si escribes return view('home');, Laravel buscará un archivo llamado home.blade.php dentro de la carpeta de vistas.

Si la vista no existe, Laravel muestra una pantalla de error descriptiva [0:54] que indica exactamente cuál es el problema. Esto resulta muy útil para depurar y corregir fallos rápidamente durante el desarrollo.

¿Cómo se pasan datos a una vista?

Cuando necesitas enviar información desde la ruta hacia la vista, puedes hacerlo a través de un segundo parámetro en la función view(). Este parámetro es un array asociativo [2:02]. Por ejemplo:

php $posts = [ ['id' => 1, 'title' => 'PHP', 'slug' => 'php'], ['id' => 2, 'title' => 'Laravel', 'slug' => 'laravel'], ];

return view('blog', ['posts' => $posts]);

En este fragmento se simula una consulta a la base de datos y se pasa la variable $posts a la vista blog. Es importante notar la convención de nombres: plural ($posts) cuando se trata de un listado y singular ($post) cuando se hace referencia a un solo registro [2:24].

¿Cómo se recorre la información en la vista?

Dentro de la vista blog.blade.php, la variable queda disponible para ser utilizada. Para recorrer un listado se emplea la directiva @foreach de Blade [3:06]:

php

<h1>Listado</h1> @foreach($posts as $post) <p><b>{{ $post['id'] }}</b> <a href="#">{{ $post['title'] }}</a> </p> @endforeach

La doble llave {{ }} es la sintaxis de Blade para imprimir valores de forma segura. Esto reemplaza la necesidad de escribir <?php echo ... ?> manualmente.

¿Por qué es obligatoria la extensión blade.php?

Blade es el motor de plantillas integrado en Laravel [4:19]. Permite escribir código de presentación de manera limpia, utilizando directivas como @foreach, @if y la sintaxis {{ }} para mostrar datos.

Los archivos de vista deben llevar la extensión .blade.php para que Laravel los procese correctamente. Si se elimina la parte .blade del nombre del archivo y se deja solo .php, el motor no reconoce la sintaxis propia de Blade [4:02]. Como resultado:

  • Las directivas @foreach y @endforeach no se interpretan.
  • La sintaxis {{ }} no renderiza los valores.
  • Se necesitaría escribir código PHP puro para lograr el mismo resultado.

Seguir esta convención de nombres es indispensable para aprovechar todas las ventajas que Blade ofrece.

¿Qué estructura de vistas se necesita para este ejercicio?

Se crearon tres archivos dentro de la carpeta de vistas [2:44]:

  • home.blade.php: muestra un encabezado sencillo con <h1>Home</h1>.
  • blog.blade.php: recorre el array de publicaciones y muestra el ID junto con un enlace al título.
  • post.blade.php: muestra el detalle de una publicación individual, imprimiendo la variable singular que recibe desde la ruta.

Cada vista corresponde a una ruta definida en web.php. La ruta del home retorna la vista home, la ruta del blog retorna blog con el listado de publicaciones, y la ruta del detalle retorna post con los datos de un solo registro [3:50].

Esta separación entre rutas y vistas es la base para construir aplicaciones organizadas y escalables. Practica creando tus propias vistas y experimenta pasando diferentes tipos de datos para afianzar el concepto.