43 Cargando DATOS en el archivo SHOW.BLADE.PHP con (LARAVEL y MYSQL)FULLSTACK
Duración: 16 minDescripción
🔎 Lección 43: Cargando Datos en el Archivo SHOW.BLADE.PHP (Búsqueda por ID)
Esta lección avanzada se enfoca en implementar la funcionalidad de Lectura Detallada (Show) para un registro específico, cubriendo la lógica del controlador para buscar datos y la visualización de los mismos en la vista show.blade.php, además de introducir un mecanismo de manejo de errores de seguridad.
1. 💻 Lógica del Controlador (PeliculasController — Función show) [01:04]
Se configura el método show($id) en el controlador para recibir el ID del registro de la película a mostrar y buscarlo en la base de datos.
- Recepción del ID: La función show recibe el $id del registro a través de la URL [01:14].
Búsqueda del Registro (Método find()): Se utiliza el método find($id) del modelo Pelicula para buscar el registro que coincida con ese ID en la base de datos [01:47].
PHP
$pelicula = Pelicula::find($id);
Retorno de la Vista y Datos: Se retorna la vista admin.peliculas.show y se le pasa la variable $pelicula (que contiene el registro encontrado) como un array asociativo [02:35].
PHP
return view('admin.peliculas.show', compact('pelicula'));
2. 🛡️ Manejo de Error 404 con findOrFail() [13:00]
Se corrige un problema de seguridad y experiencia de usuario que ocurre cuando un usuario introduce manualmente un ID inexistente en la URL.
- El Problema: Al buscar un ID que no existe (ej., /peliculas/99), el método find() devuelve null y Laravel arroja una página de error de código de programación [13:13].
La Solución: Se reemplaza find($id) por el método findOrFail($id) [14:05].
PHP
$pelicula = Pelicula::findOrFail($id);
- Resultado: Si el registro no se encuentra, Laravel detiene el proceso y muestra automáticamente la página de error 404 (No Encontrado), lo que es más seguro y amigable para el usuario final [14:40].
3. 🎨 Visualización Detallada en show.blade.php [05:08]
Se estructura la vista show.blade.php para mostrar la información del registro de manera detallada, utilizando una tabla de Bootstrap para un formato organizado.
- Acceso a los Datos: Los campos se imprimen utilizando la sintaxis de Blade para acceder a las propiedades del objeto $pelicula (ej., {{ $pelicula->titulo_p }}) [07:08].
- Renderización de Descripción: Al igual que en la vista Index, se utiliza la sintaxis {!! $pelicula->descripcion_p !!} para evitar el escapado y que el HTML de la descripción se muestre correctamente (negritas, cursivas, etc.) [08:05].
4. ▶️ Inserción del Tráiler de YouTube (Iframe) [09:01]
En lugar de solo mostrar un enlace al tráiler, se embebe el video directamente en la vista detallada para que el usuario pueda verlo sin salir de la página.
- Código de Inserción (<iframe>): Se copia el código <iframe> de inserción de YouTube [09:35].
- Concatenación Dinámica: Se reemplaza el ID del video estático en el src del <iframe> por el ID almacenado en la base de datos ({{ $pelicula->trailer_p }}) [10:04].
- Resultado: El tráiler de YouTube se carga y se visualiza correctamente dentro de la página de detalles [11:00].
5. 🔜 Próximo Paso [15:17]
Habiendo completado la vista detallada, la siguiente lección se centrará en el método edit() para habilitar la funcionalidad de Actualización (Update) de los registros.
Lecciones
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️