84 CRUD - CREATE a FAVORITOS en la TABLA de la BASE de DATOS con (LARAVEL y MYSQL)FULLSTACK

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

Descripción

💾 Lección 84: CRUD - CREATE a Favoritos en la Base de Datos

Esta lección avanzada habilita la ruta y el método en el controlador para que los datos del formulario de favoritos se inserten correctamente en la tabla pivote de la base de datos.

1. 🛣️ Definición de la Ruta Resource [00:16]

Se habilita un grupo de rutas CRUD para el nuevo módulo de favoritos.

  • Uso de resource: Se utiliza el facade Route::resource en routes/web.php para generar automáticamente todas las rutas CRUD (GET, POST, PUT, DELETE) para el controlador FavoritoController [00:28].

    PHP

    Route::resource('home', FavoritoController::class);

  • Ruta Objetivo: La operación de guardar se mapea a la ruta home.store (método POST a la URL /home), que llama a la función store en el controlador [01:05].

2. 📝 Configuración del Formulario para Envío Post [01:10]

Se modifica el formulario en la vista de la película para que cumpla con los requisitos de Laravel.

  • Acción del Formulario: Se dirige la acción del formulario a la ruta recién creada: action="{{ url('home') }}" [01:27].
  • Método POST: Se especifica el método de envío como POST [01:41].
  • Token CSRF: Se añade el token de seguridad @csrf dentro del formulario para protegerlo contra ataques Cross-Site Request Forgery [01:50].

3. 🧠 Lógica para Guardar Datos en el Controlador [02:49]

La función store en el FavoritoController recibe los datos del formulario y los persiste en la base de datos.

  • Recepción de Datos: Se utiliza el objeto $request para acceder a los datos enviados por el formulario [03:32].
  • Instancia del Modelo: Se crea una nueva instancia del modelo Favorito ($favorito = new Favorito()) [04:07].
  • Asignación de Campos: Se asignan los valores de los inputs ocultos (id_pelicula y email) a los campos correspondientes del modelo [04:25]:
    • $favorito->id_pelicula = $request->id_pelicula
    • $favorito->email = $request->email
  • Persistencia: Se invoca el método $favorito->save() para guardar el nuevo registro en la tabla favoritos [04:54].
  • Redirección: Finalmente, se utiliza el método return redirect()->back() para devolver al usuario a la vista de detalle de la película de donde provino, manteniendo la experiencia de usuario fluida [05:40].

Prueba de Funcionamiento

Al hacer clic en "Agregar a Favoritos", el sistema guarda el ID de la película y el Email del usuario autenticado como un nuevo registro en la tabla favoritos [06:30].