83 Formulario para AGREGAR A FAVORITOS en la tabla de la BASE de DATOS con(LARAVEL y MYSQL)FULLSTACK

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

Descripción

❤️ Lección 83: Formulario para Agregar a Favoritos en la Base de Datos

Esta lección avanzada establece la base para que los usuarios autenticados puedan guardar películas como favoritas, vinculando su ID de usuario con el ID de la película.

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

El primer paso es crear los archivos necesarios para gestionar la nueva funcionalidad de "Favoritos".

  • 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 Favorito -mcr

  • Diseño de la Migración: Se modifica el archivo de migración para la nueva tabla favoritos, que actuará como una tabla pivote para la relación entre users y peliculas. La tabla contendrá dos campos esenciales:
    • id_pelicula (String): Almacena el ID de la película que el usuario desea guardar [04:11].
    • email (String, longitud 100): Almacena el correo electrónico del usuario autenticado, sirviendo como la clave de identificación del usuario [04:36].
  • Ejecución de la Migración: Se ejecuta la migración para crear la tabla en MySQL: php artisan migrate [05:20].

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

Se inserta el formulario en la vista de detalle de la película (peliculas/show.blade.php), justo debajo de los botones de servidor.

  • Botón de Envío: Se crea un botón Agregar a Favoritos con estilos de Bootstrap (btn btn-warning) y un ícono de corazón para hacerlo atractivo [06:46].
  • Campos Ocultos (hidden): Se utiliza un formulario para enviar la información, pero los campos de datos se mantienen ocultos al usuario:
    • ID de la Película: Se pasa el ID de la película que se está viendo dinámicamente: <input name="id_pelicula" value="{{ $pelicula->id }}" hidden> [08:12].
    • Email del Usuario: Se pasa el correo electrónico del usuario actualmente autenticado (usando Auth::user()->email): <input name="email" value="{{ Auth::user()->email }}" hidden> [09:15].

Próximo paso: La siguiente lección se enfocará en definir la ruta y la lógica de storage dentro del FavoritoController para recibir y guardar los datos del formulario en la nueva tabla favoritos [10:22].