info('Vous allez supprimer définitivement tous les médias (et leurs fichiers) qui ont été supprimés (en soft delete).'); $choice = $this->choice('Etes-vous sûr de vouloir lancer ce traitement ?' , ['y', 'n'], 'y'); if($choice != "y"){ $this->error('Choix incorrect'); die(); } $sujets = Sujet::where('sujet_dam', 1)->get(); $this->line(""); $this->line("Liste des sujets disponibles"); $this->line("----------------------------"); foreach ($sujets as $key => $sujet) { $this->line("[".$sujet->codeSujet."] ". $sujet->libelle); } $this->line("[0] Tous les sujets"); $sujetId = $this->ask('Pour quel sujet de média souhaitez vous executer le traitement ?' ); if($sujetId == ""){ $this->error('Id de sujet incorrect'); die(); } if($sujetId == 0){ $medias = Media::onlyTrashed()->with('Sujet.formats')->get(); }else{ $medias = Media::onlyTrashed()->where('sujet_id', $sujetId)->with('Sujet.formats')->get(); } if($medias->count() == 0){ $this->error('Aucun média a supprimer'); die(); } $this->info($medias->count().' média(s) trouvé(s) - Début du traitement'); $bar = $this->output->createProgressBar(count($medias)); $bar->start(); foreach ($medias as $media) { // supprime les fichiers médias stockés sur disque $files = Storage::files($media->folder."/"); $filepath = preg_quote($media->folder.$media->uid, '/'); $matchingFiles = preg_grep('/^'.$filepath.'/', $files); Storage::delete($matchingFiles); // supprime le media en bdd $media->forceDelete(); $bar->advance(); } $bar->finish(); $this->line(""); $this->info('Fin du traitement'); } }