W tym tutorialu pokażę w jaki sposób dodać do EasyAdmin (w Symfony 4) możliwość uploadowania plików graficznych na serwer. Wykorzystam do tego celu pakiet VichUploaderBundle. Przykłady zawarte w tym rozdziale są kontynuacją tematów: INSTALACJA SYMFONY 4 + EASYADMIN oraz (opcjonalnie) EASYADMIN I CKEDITOR.

1. Zaczniemy od utworzenia struktury katalogów: public/images/.
Do tego folderu będą uploadowane pliki za pomocą wygenerowanego formularza (rysunek powyżej). Upewnij się, że katalog images ma prawa do zapisu 777.

2. Instalujemy pakiet VichUploaderBundle:

oraz dołączamy go w pliku bundles.php:

3. Wprowadzamy konfigurację w pliku vich_uploader.yaml (/config/packages/vich_uploader.yaml):

  • mappings – oznaczenie mapowania (page_image – nazwa ta musi pokrywać się z nazwą zawartą w klasie Page.php@Vich\UploadableField(mapping=„page_image”) – patrz kolejny punkt 4. ,
  • uri_prefix – nazwa katalogu docelowego,
  • upload_destination – adres do katalogu, do którego będą „wrzucane” pliki.

4. Aktualizujemy klasę Page.php:

 
5. Aktualizujemy tabele w bazie:

6. Aktualizujemy plik konfiguracyjny easy_admin.yaml (/config/packages/easy_admin.yaml):

Wybierając typ vich_image dla kontrolki formularza imageFile otrzymamy gotowy efekt jak na obrazku poniżej:

vich upload

Uruchom przeglądarkę i sprawdź działanie aplikacji.