87 Formulario para AGREGAR a HISTORIAL de PELÍCULAS con (LARAVEL y MYSQL)FULLSTACK

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

Descripción

📜 Lección 87: Formulario para Agregar a Historial de Películas

Esta lección avanzada crea el modelo, la migración y el formulario necesario para guardar la información de las películas visitadas por el usuario, preparándola para ser utilizada como un historial personal.

1. 🛠️ Preparación de la Base de Datos y el Modelo [01:58]

Se crean los archivos necesarios para gestionar la nueva funcionalidad de "Historial".

  • Creación de Archivos: Se utiliza el comando de Artisan para generar el modelo, la migración y el controlador con recursos (-mcr) en un solo paso:

    Bash

    php artisan make:model Historial -mcr

  • Diseño de la Migración: Se modifica el archivo de migración para la nueva tabla historials (se recomienda usar nombres en plural para las tablas). Al igual que la tabla de favoritos, esta contendrá:
    • id_pelicula (String): Almacena el ID de la película [03:17].
    • email (String, longitud 100): Almacena el correo electrónico del usuario logueado [03:20].
  • Ejecución de la Migración: Se ejecuta la migración para crear la tabla en MySQL: php artisan migrate [03:32].
  • Definición de Ruta: Se añade la ruta resource para el nuevo HistorialController en routes/web.php [04:01]:

    PHP

    Route::resource('historial', HistorialController::class);

2. 📝 Diseño del Formulario en la Vista de Película (show) [05:33]

A diferencia de la función "Favoritos", esta función debe registrar el historial en el momento en que el usuario hace clic para ver la película. Por ello, el formulario se envuelve alrededor de los botones de reproducción.

  • Estructura de Formulario: Se crea un formulario con el método POST y el token CSRF (@csrf) alrededor del primer botón de reproducción ("Ver película opción 1") en la vista peliculas/show.blade.php [06:01].
  • Acción del Formulario: La acción del formulario se dirige a la ruta de almacenamiento del historial [06:40]:

    PHP

    action="{{ url('historial') }}"

  • Campos Ocultos (hidden): Se añaden tres campos de datos ocultos para ser enviados al controlador [07:22]:
    1. ID de la Película: Se pasa el ID de la película actual.
    2. Email del Usuario: Se pasa el email del usuario autenticado.
    3. Link de Reproducción (link): Se añade el link de reproducción de la película. Este campo es crucial, ya que el controlador lo utilizará para redirigir al usuario al reproductor inmediatamente después de guardar el registro en el historial [07:37].
  • Botón de Envío: El botón de reproducción se convierte en el botón de tipo submit del formulario para que al hacer clic se active la inserción del historial y el envío de datos [08:38].

3. 🧠 Recepción de Datos en el Controlador [09:40]

Se implementa el método store en el HistorialController para recibir y verificar la información enviada.

  • Verificación de Datos: Se utiliza el facade dd() o return response()->json() para confirmar que el controlador está recibiendo correctamente el id_pelicula, el email del usuario y el link de reproducción, asegurando que todos los datos necesarios para guardar el historial y redirigir al usuario están presentes [10:39].

Próximo paso: La siguiente lección se centrará en implementar la lógica de guardado en el HistorialController y en la redirección inmediata al reproductor de la película utilizando el link guardado [11:00].