88 CARGAR DATOS del HISTORIAL de PELÍCULAS con (LARAVEL y MYSQL)FULLSTACK

Duración: 13 min
Módulo: ✨ Módulo de Experiencia de Usuario y Cierre Lección 8 de 11

Descripción

💾 Lección 88: Guardar y Redirigir el Historial de Películas

Esta lección avanzada implementa la lógica final en el controlador para guardar el registro de la película visitada y utiliza el link de reproducción enviado por el formulario para enviar al usuario al reproductor sin un paso intermedio.

1. 🧠 Lógica de Almacenamiento (CREATE) [00:00]

El método store en el HistorialController implementa la lógica para guardar el registro en la base de datos.

  • Instancia del Modelo: Se crea una nueva instancia del modelo Historial [00:24].
  • Asignación de Campos: Se asignan los valores recibidos por el $request a los campos de la tabla historials [00:41]:
    • $historial->id_pelicula = $request->id_pelicula
    • $historial->email = $request->email
  • Persistencia: Se invoca el método $historial->save() para guardar el nuevo registro [01:21].
  • Verificación: Se confirma que los registros se insertan correctamente en la tabla historials, que ahora contiene el ID de la película y el email del usuario que ha hecho clic en "Ver película" [01:46].

2. ↩️ Redirección Inmediata al Reproductor [02:14]

Para que la experiencia del usuario sea fluida (hacer clic en "Ver" debe llevarlo al video), se implementa una lógica de redirección basada en el link enviado desde el formulario.

  • Recuperación del Link: Se almacena el link de reproducción, enviado como campo oculto en el formulario, en una variable temporal [02:22]:

    PHP

    $link = $request->link;

  • Redirección con URL: Se utiliza el método return redirect($link) para que, inmediatamente después de guardar el registro del historial, el navegador redirija al usuario a la URL de reproducción de la película [02:51].
  • Prueba de Flujo: Se demuestra que al hacer clic en "Ver película", la información se guarda en la tabla historials en milisegundos y el usuario es redirigido de manera invisible al reproductor, creando la ilusión de que fue una acción directa [03:27].

3. 🖼️ Carga y Despliegue del Historial en el Dashboard [06:14]

Se adapta la lógica de READ utilizada para "Favoritos" para cargar la información completa de las películas del historial en el dashboard (home.blade.php).

  • Consulta Compuesta: Al igual que en favoritos, se utiliza una consulta doble:
    1. Se extrae un array de id_peliculas de la tabla historials, filtrado por el email del usuario autenticado [07:17].
    2. Se utiliza el método whereIn en el modelo Pelicula para buscar la información completa de todas las películas cuyos IDs coincidan con el array del historial [08:14].
  • Envío a la Vista: La colección resultante ($peliculas_historial) se envía a la vista [08:35].
  • Despliegue en Home: Se añade una sección de código en home.blade.php (utilizando la misma estructura de cards y el bucle @foreach) para iterar sobre la variable del historial y mostrar las películas [09:29].
  • Resultado Final: El dashboard del usuario ahora muestra dos secciones dinámicas y personalizadas: Mis Películas Favoritas y Historial de Películas, ambas filtradas según el usuario autenticado [11:09].