105 Delete configuraciones del Sistema con LARAVEL(PHP-MySql) FullStack

Duración: 12 min
Módulo: 📝 Historial Clínico, Configuraciones y Reportes Lección 6 de 23

Descripción

🗑️ Lección 105: Eliminación Segura de las Configuraciones del Sistema

Esta lección se enfoca en implementar la funcionalidad de eliminación (DELETE) para el módulo de configuraciones. El punto crucial es asegurar que, al eliminar el registro de la base de datos, también se borre permanentemente el archivo del logotipo asociado del servidor, evitando el almacenamiento de archivos obsoletos.

1. ❓ Vista de Confirmación (confirmDelete)

Antes de realizar la eliminación, se dirige al administrador a una vista de confirmación para prevenir borrados accidentales.

a. Lógica del Controlador (delete) [01:15]

  • Se creó la función delete($id) en el ConfiguracionesController.
  • Esta función busca el registro de configuración por su ID y lo pasa a la vista de confirmación.

b. Interfaz de Confirmación (delete.blade.php) [01:51]

  • Se adaptó la vista de edición (edit.blade.php) para esta función.
  • Título y Pregunta: Muestra el título "Eliminar Configuración" y la pregunta "¿Está seguro de eliminar este registro?" [03:51].
  • Campos Deshabilitados: Los campos de texto se marcan con el atributo disabled [04:13] para que el administrador pueda visualizarlos sin poder modificarlos.
  • Ruta de Acción: El formulario apunta al método destroy y utiliza el helper @method('DELETE') [02:45].
  • Botón de Eliminación: Se utiliza el color rojo (btn-danger) para el botón "Eliminar".

2. 💣 Lógica de Eliminación (destroy)

El método destroy es el responsable de ejecutar la eliminación tanto en el servidor como en la base de datos.

a. Búsqueda y Preparación [05:59]

  • El método destroy($id) recibe el ID del registro a eliminar.
  • Se recupera el objeto $configuracion completo utilizando Configuracion::find($id) para acceder al nombre del archivo de logotipo.

b. Eliminación del Logotipo del Servidor [06:41]

  • Este es el paso más importante para mantener la limpieza del servidor. Se utiliza la fachada Storage de Laravel:
    • Se llama al método Storage::disk('public')->delete().
    • Se le pasa la ruta de la imagen: public/logos/ concatenada con el nombre del archivo ($configuracion->logo).
    • Esto borra el archivo físico de la carpeta storage/app/public/logos, liberando espacio.

c. Eliminación del Registro de la Base de Datos [07:08]

  • Una vez que el archivo físico ha sido eliminado, se procede a borrar el registro de la tabla:
    • $configuracion->destroy($id) o $configuracion->delete()
  • Finalmente, se redirige al index con un mensaje de éxito, confirmando que la configuración fue eliminada correctamente.

3. 📈 Actualización del Dashboard [08:33]

Se implementó un nuevo contador en el dashboard principal del administrador.

  • Widget Añadido: Se incluyó un widget de color Primary (azul) con el ícono de engranaje (fa-cog).
  • Contador: Muestra el "Total de Configuraciones", utilizando el método count() sobre el modelo Configuracion.
  • Propósito: Este contador permite al administrador ver rápidamente cuántos registros de configuración existen (generalmente, solo uno).