11 🚗 MÓDULO VEHÍCULOS Completo - CRUD + Relaciones + Foreign Keys | Laravel Parqueo

Duración: 66 min
Módulo: 🚗 Módulos Operacionales de Inventario Lección 4 de 4

Descripción

🚗 Lección 11: Módulo Vehículos Completo - CRUD + Relaciones + Foreign Keys | Laravel Parqueo

Esta lección completa el módulo de Clientes y desarrolla la funcionalidad CRUD (Crear, Leer, Actualizar, Eliminar) para el módulo Vehículos, asegurando la relación de uno a muchos establecida previamente.

1. Preparación del Entorno y Datos de Prueba 🧪

  • Sincronización de la Base de Datos
    • Uso de Seeders y Faker para generar datos de prueba (roles, usuarios, espacios, tarifas y cinco clientes) [00:00:39 - 00:01:41].
    • Ejecución del comando PHP artisan migrate:fresh --seed para refrescar y poblar la base de datos con información inicial [01:51].

2. Módulo Clientes: Completando las Operaciones CRUD 👤

  • Acción de Edición (Update)
    • Recepción del ID y búsqueda del cliente [03:56].
    • Creación de la vista edit.blade.php y carga de los datos existentes del cliente en el formulario [00:04:22 - 00:08:42].
    • Implementación de la función update() para aplicar la lógica de validación y guardar los cambios ($cliente->save()) [00:09:59 - 00:11:40].
  • Acción de Eliminación Lógica (Soft Delete)
    • Inclusión del trait SoftDeletes en el modelo Cliente [14:46].
    • La función destroy() cambia el estado del cliente a falso y ejecuta la eliminación suave ($cliente->delete()), lo que agrega una marca de tiempo en el campo deleted_at [00:13:24 - 00:15:54].
    • Modificación de la consulta All en el Controller para incluir clientes eliminados con withTrashed() [16:30].
  • Acción de Restauración (Restore)
    • Implementación de la ruta y función restore() [19:21].
    • Uso del método restore() en el cliente eliminado y posterior cambio del campo estado a true [02:02:14 - 02:04:06].

3. Módulo Vehículos: Gestión y Relación 🚗

  • Acción de Ver Detalles (show)
    • Creación de la ruta para ver los detalles del cliente [02:21:28].
    • Diseño de la vista show.blade.php para mostrar la información del cliente [02:30:57].
    • Listado Relacional: Se utiliza la función with('vehiculos') en la consulta para cargar los vehículos asociados al cliente y listarlos en una tabla dentro de la vista show [03:19:51].
  • Registro de Vehículos (Modal)
    • El formulario de registro se implementa usando una Ventana Modal [03:36:30].
    • Se utiliza un campo oculto (type="hidden") para enviar el cliente_ID al controlador junto con los datos del vehículo [04:47:58].
    • Validación de la placa como campo único (unique:vehiculos,placa) y asegurando la conversión a mayúsculas [05:01:19, 05:39:10].
    • La función store() guarda el nuevo vehículo y redirige de vuelta al formulario del cliente (return back()) [05:21:15].
  • Edición de Vehículos (Modal)
    • Se implementa otra Ventana Modal para editar los datos del vehículo seleccionado [05:50:49].
    • Se crean las rutas con el método PUT [05:58:04].
    • La función update() requiere una validación de unicidad especial, excluyendo el registro actual del vehículo [01:01:17].
  • Eliminación de Vehículos
    • Se implementa la función destroy() en el VehiculoController para realizar una eliminación física del registro, dado que el cliente ya tiene una eliminación lógica [01:04:16].