Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Symfony EasyAdmin - Usuwanie obrazów, EasyAdmin delete images
Malinaa
post 5.07.2021, 22:24:24
Post #1





Grupa: Zarejestrowani
Postów: 518
Pomógł: 6
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


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!


--------------------
I welcome you on the Internet >>> Design by Malina
Go to the top of the page
+Quote Post
rad11
post 6.07.2021, 05:49:53
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


https://stackoverflow.com/questions/6500264...a-physical-file
Go to the top of the page
+Quote Post
Malinaa
post 6.07.2021, 08:23:37
Post #3





Grupa: Zarejestrowani
Postów: 518
Pomógł: 6
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


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


--------------------
I welcome you on the Internet >>> Design by Malina
Go to the top of the page
+Quote Post
rad11
post 6.07.2021, 16:41:22
Post #4





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Masz ten event dodać ponieważ symfony wywołuje ten event po usunięciu rekordu z bazy, próbowałeś?
Go to the top of the page
+Quote Post
Malinaa
post 6.07.2021, 23:12:13
Post #5





Grupa: Zarejestrowani
Postów: 518
Pomógł: 6
Dołączył: 21.07.2008

Ostrzeżenie: (0%)
-----


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?

Ten post edytował Malinaa 6.07.2021, 23:18:15


--------------------
I welcome you on the Internet >>> Design by Malina
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.04.2024 - 08:01