W poprzednim rozdziale SONATA ADMIN BUNDLE – INSTALACJA I KONFIGURACJA pokrótce opisałem pakiet Sonata. Teraz pokażę, jak zbudować „zaplecze” do edycji zwykłej strony opisowej (z polami: id, title, content, enabled, createdAt) – jak na obrazku powyżej. Aby osiągnąć taki efekt, naprawdę nie trzeba wiele 🙂 Większość katorżniczej pracy wykona za nas Sonata, o czym zaraz się przekonasz.

Na początek utworzymy bazę danych. Można to zrobić za pomocą aplikacji PHPMyadmin itp. Następnie musimy skonfigurować nasze połączenie z bazą w pliku .env. Plik ten znajduje się w katalogu głównym frameworka Symfony.

Wyedytuj zmienną środowiskową DATABASE_URL i zapisz dane do połączenia z bazą danych (username, password, dbname):

Utwórz model Page.php z kontrolkami formularza:

Z konsoli wiersza poleceń generujemy tabelę o nazwie page (zgodnie z nazwą klasy):

Tworzymy klasę PageAdmin.php (src/Admin/PageAdmin.php). W niej konfigurujemy postać panelu: widoczność pól na liście (configureListFields), w widoku siatki (configureDatagridFilters) oraz w widoku formularza do tworzenia / edycji strony (configureFormFields):

W konfiguracji listy i siatki pominąłem pole content, gdyż ono nie jest nam potrzebne w tych widokach. Efekt będzie taki jak na obrazku poniżej, ale to jeszcze nie koniec 🙂

Zarejestruj klasę Admina w pliku services.yaml (config/services.yaml):

Czyścimy cache:

i wchodzimy na adres panelu:

https://localhost/public/index.php/admin

Prawda, że imponujące ? 🙂
A ile czasu i wkładu własnej pracy zaoszczędziłeś; sam oceń 😉