Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Symfony EasyAdmin - Usuwanie obrazów
Forum PHP.pl > Forum > PHP
Malinaa
Po zalogowaniu do panelu EasyAdmin mam wylistowaną tabelę zdjęć w galerii, przy każdym rekordzie są przyciski edytuj i usuń.

Klikam Usuń i usuwane są dane z bazy, ale pozostają w katalogach pliki zdjęć, na każdy rekord przypadają dwa zdjęcia: obrazek (główny) i miniaturka.

Jak usunąć zdjęcia z katalogów (nie tylko sam rekord z bazy danych)?

Please help!
Malinaa
Widziałem ten kod, ale jak mam go połączyć z akcją, do której widzę tylko odnośnik (Usuń) typu:
page?crudAction=delete&crudId=5aa4978&entityId=760&menuIndex=3
rad11
Masz ten event dodać ponieważ symfony wywołuje ten event po usunięciu rekordu z bazy, próbowałeś?
Malinaa
Ok, zrobiłem jak pod linkiem i działa.

  1. class EasyAdminSubscriberGalleries implements EventSubscriberInterface {
  2.  
  3. public function deletePhysicalImage(AfterEntityDeletedEvent $event) {
  4. $entity = $event->getEntityInstance();
  5.  
  6. if (!($entity instanceof RtwGalleries)) return;
  7.  
  8. //$image_path = $this->parameterBag->get('kernel.project_dir') . '/public_html/'.$entity->getFilename();
  9. $photo_path = 'images/gallery/photos/'.$entity->getFilename();
  10. $thumbnail_path = 'images/gallery/thumbnails/'.$entity->getFilename();
  11.  
  12. if (file_exists($photo_path)) unlink($photo_path);
  13. if (file_exists($thumbnail_path)) unlink($thumbnail_path);
  14. }
  15.  
  16. }


Musiałem jednak zmienić linie kodu, aby zadziałało.
//$image_path = $this->parameterBag->get('kernel.project_dir') . '/public_html/'.$entity->getFilename();
1. Jak mogę wyświetlić $image_path aby zobaczyć co tam jest?
I poprawić $photo_path i $thumbnail_path .

2. Czy jeśli będę mieć podobną sytuacje, ale dla ścieżek:
$photo_path = 'images/articles/photos/'.$entity->getFilename(); // zmiana ścieżki z gallery na articles
$thumbnail_path = 'images/articles/thumbnails/'.$entity->getFilename();
można udoskonalić tę klasę, czy lepiej napisać drugą taką tylko z innymi ścieżkami i innym $entity?

3. Potrzebuję tu napisać jeszcze sprawdzenie stanu Galerii.
Obecnie stan w bazie pokazuje ok. 650 zdjęć, a liczba zdjęć w katalogach 750,
trzeba sprawdzić, które zdjęcia nie są zapisane w bazie danych i je usuną z katalogów.
Jakiś pomysł, jak to zrobić najlepiej?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.