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
Viendo ahora - 6

Plantillas Blade para vistas sin código repetido
06:03 min - 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
Cómo retornar vistas Blade en Laravel
Resumen
Devolver vistas en Laravel en lugar de texto plano es uno de los pasos clave para construir aplicaciones reales con este framework. Aquí aprendes a configurar rutas que retornen vistas, pasar datos desde el controlador y aprovechar el motor de plantillas Blade para escribir código limpio y mantenible.
¿Cómo configurar una ruta que devuelva una vista en Laravel?
En el archivo web.php, en lugar de retornar un string, usas la función view() indicando el nombre del archivo que vive dentro de resources/views. La sintaxis básica luce así:
php Route::get('/', function () { return view('home'); });
Si la vista no existe, Laravel muestra una pantalla de error muy descriptiva que indica exactamente qué archivo falta. Esa retroalimentación inmediata es una de las razones por las que depurar en Laravel se siente tan ágil.
¿Qué hace la función view() en Laravel? Carga un archivo de plantilla desde
resources/viewsy lo devuelve como respuesta HTTP. Recibe el nombre de la vista sin la extensión.blade.php.
¿Cómo pasar datos desde la ruta hacia la vista?
Imagina que estás simulando una consulta a base de datos para listar publicaciones de un blog. Defines un array con la información y lo pasas como segundo argumento de view().
php Route::get('/blog', function () { $posts = [ ['id' => 1, 'title' => 'PHP', 'url' => 'php'], ['id' => 2, 'title' => 'Laravel', 'url' => 'laravel'], ]; return view('blog', ['posts' => $posts]); });
Fíjate en la convención: la variable va en plural cuando es una colección y en singular cuando representa un solo registro. Esa pequeña disciplina te ahorra confusiones cuando el proyecto crece.
Para el detalle de una publicación, la lógica es la misma pero pasando un único registro:
php Route::get('/post', function () { $post = ['id' => 1, 'title' => 'PHP', 'url' => 'php']; return view('post', ['post' => $post]); });
¿Cómo se estructuran las vistas Blade?
Dentro de resources/views, creas los archivos con la extensión .blade.php. Para la página principal basta algo simple:
blade
<h1>Home</h1>La vista del listado, en cambio, recorre la colección con @foreach, una directiva propia de Blade que reemplaza la sintaxis tradicional de PHP:
blade
<h1>Lista</h1> @foreach ($posts as $post) <p><b>{{ $post['id'] }}</b> <a href="#">{{ $post['title'] }}</a></p> @endforeachLas llaves dobles {{ }} imprimen el contenido de forma segura, escapando caracteres especiales por defecto. Es una de esas pequeñas funcionalidades que hacen que escribir vistas sea más cómodo y seguro.
¿Por qué es obligatoria la extensión .blade.php?
Aquí viene lo interesante. Si renombras el archivo y le quitas el .blade, dejándolo solo como blog.php, Laravel deja de procesar la sintaxis especial. Las directivas como @foreach y las llaves {{ }} aparecen como texto plano en el navegador porque el motor de plantillas no se activa.
¿Qué es Blade en Laravel? Es el motor de plantillas oficial del framework. Permite usar directivas como
@foreach,@ifo{{ }}para escribir vistas más limpias que con PHP puro, y solo funciona en archivos con extensión.blade.php.
¿Cuándo usar plural y cuándo singular en las variables?
Una convención que conviene fijar desde el inicio:
- Usa plural (
$posts) cuando pases una colección o lista de registros. - Usa singular (
$post) cuando pases un solo elemento, como en una vista de detalle. - Mantén la coherencia entre el nombre de la vista y el contenido que muestra:
blogpara el listado,postpara el detalle.
Esta nomenclatura no es obligatoria a nivel técnico, pero hace que tu código sea legible para cualquier persona que llegue al proyecto después de ti.
¿Qué ventajas trae usar el motor Blade frente a PHP puro?
Cuando escribes vistas con PHP plano, terminas mezclando etiquetas <?php ?> por todos lados. Blade reduce ese ruido visual y te da herramientas pensadas para vistas: herencia de plantillas, componentes reutilizables, directivas condicionales y bucles más expresivos.
Al seguir la convención .blade.php accedes a todo ese ecosistema. Si la rompes, vuelves a escribir PHP tradicional y pierdes los beneficios del framework.
Practica creando estas tres vistas (home, blog y post), pasa datos simulados como si vinieran de una consulta y verifica en el navegador que cada ruta renderiza correctamente. ¿Qué otros usos le darías a Blade en tu proyecto? Cuéntame en los comentarios.