41 CRUD completo de los ministerios en el curso de LARAVEL 10 Sistema de control de asistencia

Duración: 35 min
Módulo: Módulos Secundarios y Funcionalidad Clave 🧩 Lección 2 de 8

Descripción

🎬 Lección 41: 🛠️ CRUD Completo del Módulo Ministerios y Correcciones

Enlace del Video: https://youtu.be/gK6o5bx5ems

💡 Enfoque Principal:

Completar las acciones de Show, Edit, Update y Destroy para el módulo Ministerios y realizar mejoras clave en la gestión de registros del módulo Miembros (confirmación de eliminación y borrado de archivos).

1. Mejoras en el Módulo Miembros (Feedback del Usuario)

Se implementaron dos correcciones importantes en el módulo Miembros basadas en el feedback para mejorar la experiencia del usuario y la gestión del sistema:

  • Confirmación de Eliminación:
    • Se añade la función onclick="return confirm('¿Está seguro de eliminar este registro?')" al botón de eliminar en la vista miembros/index.blade.php. Esto evita que el usuario elimine registros por error al requerir una confirmación antes de enviar el formulario [03:00].
  • Borrado de Imagen del Storage:
    • Se corrige la función destroy en el MiembroController para garantizar que, al eliminar un registro, también se elimine la imagen asociada del almacenamiento (Storage) del proyecto, liberando espacio. Esto se hace buscando primero el registro y luego usando Storage::delete() [06:59].

2. Desarrollo del CRUD Completo para Ministerios

A. Visualización de Registro (Show)

  • Controlador: La función show($id) en MinisterioController recupera el registro específico con Ministerio::findOrfail($id) y lo pasa a la vista [11:59].
  • Vista (show.blade.php): Se adapta la vista para mostrar los campos. Es crucial utilizar la sintaxis {!! $ministerio->descripcion !!} para que la descripción con formato (generada por CKEditor) se visualice correctamente como HTML y no como texto plano [15:36].

B. Edición y Actualización (Edit y Update)

  • Controlador (Edit): La función edit($id) recupera el registro existente y lo envía a la vista [17:35].
  • Vista (edit.blade.php):
    • Se usa la plantilla del Create, ajustando el título a "Actualización del ministerio" [18:46].
    • Se utiliza el método @method('PATCH') dentro del formulario para indicarle a Laravel que se trata de una actualización [20:13].
    • Se utiliza la sintaxis {!! $ministerio->descripcion !!} en el <textarea> para cargar el contenido de la descripción y que CKEditor lo pueda editar [21:58].
  • Controlador (Update): La función update(Request $request, $id) realiza los siguientes pasos [23:27]:
    1. Aplica la validación de los campos requeridos.
    2. Busca el registro por su ID (Ministerio::find($id)).
    3. Asigna los nuevos valores a las propiedades del objeto.
    4. Guarda los cambios con $ministerio->save(). Laravel actualiza el registro automáticamente al detectar que el objeto ya existe en la base de datos.

C. Eliminación de Registro (Destroy)

  • Confirmación: Se añade la misma confirmación JavaScript al botón de eliminar en ministerios/index.blade.php [31:57].
  • Controlador: La función destroy($id) utiliza el método estático y rápido de Eloquent Ministerio::destroy($id) para eliminar el registro de la base de datos [32:45].

Con esto, el módulo Ministerios queda funcional y completo, y el proyecto avanza según el plan solicitado. El siguiente paso será implementar una vista de resumen general (dashboard) [33:56].