51 Como eliminar carpetas privadas y publicas en el curso de LARAVEL (PHP y MySql) FullStack
Duración: 12 minDescripción
🗑️ Lección 51: Cómo Eliminar Carpetas Privadas y Públicas
Este capítulo completa la funcionalidad de eliminación de carpetas abordando el problema de la persistencia de los archivos físicos en el servidor, incluso después de que sus registros fueran eliminados de la base de datos en modo cascada.
1. 📂 Eliminación del Directorio Físico
El instructor modifica la función destroy del CarpetaController para asegurar que las carpetas y su contenido se eliminen de ambos directorios de almacenamiento:
- Identificación del Problema: En el capítulo anterior, al eliminar una carpeta, solo se eliminaban los registros de la base de datos (por la configuración on delete cascade), pero las carpetas físicas (tanto en el directorio privado como en el público) seguían existiendo [01:59].
- Solución: Dentro de la función destroy($id) y antes de eliminar el registro de la base de datos, se añade la lógica de Laravel Storage para eliminar los directorios:
- Resultado: Se verifica que al eliminar una carpeta que contenía archivos compartidos (y, por lo tanto, directorios público y privado), ambas carpetas físicas son eliminadas del servidor, y los registros correspondientes desaparecen de la base de datos (modo cascada) [04:48].
2. 🛡️ Mensaje de Confirmación (Alerta)
Para evitar eliminaciones accidentales de carpetas con contenido valioso, se implementa una alerta de confirmación utilizando una librería JavaScript:
- Necesidad: Dado que la eliminación de una carpeta borra automáticamente todo su contenido (modo cascada), es crucial asegurar que el usuario confirme la acción [07:59].
- Implementación: Se utiliza un script de confirmación (similar al usado para la eliminación de usuarios) en la vista index.blade.php, que:
- Muestra una alerta al hacer clic en el botón "Eliminar".
- Personaliza el mensaje para advertir claramente al usuario: "Si eliminas la carpeta, todo el contenido se eliminará de forma automática" [10:27].
- Solo si el usuario confirma (Sí), se envía el formulario y se ejecuta la acción destroy.
🏁 Próximo Módulo
Con la solución de conflictos de rutas, las funciones de compartir y la eliminación total de carpetas (Base de Datos + Archivos Físicos) completadas, el instructor anuncia la finalización de este módulo.
Lecciones
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️