06 CRUD Completo del Modulo Sucursales, Controlador, Validación, Alertas y DataTables con Laravel

Duración: 28 min
Módulo: Gestión de Módulos Base (Sucursales, Categorías y Empleados) Lección 2 de 6

Descripción

🔍 Lección 6: CRUD Completo del Módulo Sucursales, Controlador, Validación, Alertas y DataTables en Laravel 🚀

En este sexto episodio se completa por entero el CRUD (Crear, Leer, Actualizar y Eliminar) para la entidad Sucursales. Además, se realiza la limpieza del header administrativo, la traducción global del sistema y la integración de DataTables junto con alertas emergentes modernas (SweetAlert).

🎯 Desarrollo técnico paso a paso

  • 1. Lectura de Datos (index):
    • En SucursalController@index, se hace la consulta mediante Eloquent: $sucursales = Sucursal::all(); [01:20].
    • Se pasa la colección a la vista resources/views/sucursales/index.blade.php mediante la función compact('sucursales') [01:37].
    • En la vista, se recorren los datos dentro de un bucle @foreach utilizando $loop->iteration para mostrar una numeración secuencial limpia [02:38].
  • 2. Formulario de Creación y Guardado (create / store):
    • La vista create.blade.php contiene un formulario dirigido a la ruta sucursales.store mediante el método POST e incluye la directiva de seguridad @csrf [06:07].
    • Validación Backend: En el controlador se aplica $request->validate(['nombre' => 'required']) [11:16]. Si falla, se muestra un mensaje de error usando @error('nombre') [09:21].
    • Guardado: Se instancia un nuevo objeto new Sucursal(), asignando $sucursal->nombre = $request->nombre; y $sucursal->direccion = $request->direccion; seguido de $sucursal->save(); [12:30].
    • Redirecciona al listado con un mensaje de éxito: with('mensaje', 'Sucursal creada exitosamente') [12:57].
  • 3. Configuración Regional y Limpieza de Interfaz:
    • Título del Sistema: Se modifica config/app.php cambiando el parámetro de la app a 'Sis turnos' [14:53].
    • Idioma del Backend: Se actualiza 'locale' => 'es' en config/app.php para la localización [15:53].
    • Top Header Limpio: Se comenta el input de búsqueda general, el botón publicitario GoPro y las opciones de idioma sobrantes en los parciales de Blade [16:35].
    • Datos del Perfil: Se dinamiza el sub-header sustituyendo el texto estático por el nombre real del usuario autenticado (Auth::user()->name) y su rol activo [03:53].
  • 4. Edición y Actualización (edit / update):
    • La acción edit($id) consulta el registro único mediante Sucursal::findOrFail($id) y retorna la vista edit.blade.php con la sucursal inyectada [20:25].
    • La vista edit.blade.php incluye el método POST junto a la directiva @method('PUT') y autocompleta los campos con value="{{ $sucursal->nombre }}" [21:30].
    • En update($request, $id), se valida el formulario, se busca el registro y se actualizan los datos con $sucursal->save() [22:39].
  • 5. Eliminación (destroy), DataTables y Alertas SweetAlert:
    • En destroy($id), se hace la búsqueda del modelo y se ejecuta $sucursal->delete(), retornando un mensaje de notificación [24:27].
    • DataTables: Se inicializa la tabla en la vista index.blade.php adjuntando la librería de DataTables para habilitar paginación, filtro de búsqueda instantáneo y ordenación de registros [25:24].
    • SweetAlert: Se reemplaza la alerta flotante nativa del navegador por una ventana SweetAlert de confirmación interactiva para prevenir eliminaciones accidentales [26:00].

🗄️ Próximo paso

Con la arquitectura completa del primer CRUD operativo y la plantilla 100% limpia y adaptada en español, en la Lección 7 se replicará este flujo para abordar el siguiente módulo de la base de datos (Categorías/Turnos) aprovechando los componentes ya estructurados.