![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 25.06.2013 Ostrzeżenie: (0%) ![]() ![]() |
Czesc, jestem nowy w Symfony. Zaznajomilem sie z dokumentacja i czescia cookbooka. Postanowilem w koncu cos napisac. Wystartowalem od backendu z Sonata Admin Bundle. Utworzylem modele, pozniej po nierownej walce z Sonata, skonfigurowalem ja, utworzylem klasy Adminow dla moich modeli i wszystko calkiem fajnie dziala(oprocz kiepskiej dokumentacji samej Sonaty
![]() Teraz moje wlasciwe pytanie, chcialbym przerobic domyslnego dashboarda, dodajac taki panel ze statystykami(ilosci userow, postow, co nowego do moderacji, jakies linki, moze wykres, itp). W dokumentacji Sonaty zalecaja uzywanie Block Bundle, niestety po przeczytaniu instrukcji tworzenia nowego blocka, nadal mam sporo watpliwosci(pewnie to braki w zrozumieniu symfony). Bylbym bardzo wdzieczny jakby ktos mi to lopatologicznie wytlumaczyl, jak stworzyc takiego blocka, jak dobrac sie do zawartosci modeli w tym blocku, jak to pozniej wyswietlic w szablonach. Mile widziane jakies solidne linki w tej tematyce, strasznie ciezko cos znalezc. PS: Uzywam Doctrine ODM i mongodb, to troche komplikuje sprawe. Przepraszam za brak polskich liter ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cześć.
Musisz zadawać konkretniejsze pytania. -------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 25.06.2013 Ostrzeżenie: (0%) ![]() ![]() |
Ok, tak wiec konkretniej. Na podstawie dokumentacji Admin Bundle, wywnioskowalem, ze dashboard sklada sie z blockow(Block Bundle), wiec aby dodac cos swojego, musze stworzyc swoj wlasny block, tak jak przykladowy tutaj:
http://sonata-project.org/bundles/block/ma...irst_block.html Pytanie jak w tym bloku dostac sie do bazy danych, w contorlerze wyglada to tak:
Co zrobic zeby, wyswietlic w tym bloku nazwe ostatnio dodanego uzytkownika? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Cytat Pytanie jak w tym bloku dostac sie do bazy danych Cytat Co zrobic zeby, wyswietlic w tym bloku nazwe ostatnio dodanego uzytkownika? Z dokumentacji wynika, że taki blok to zwykła usługa. Wystarczy wstrzyknąć odpowiednie zależności, np. repozytorium użytkowników. Wtedy bez problemu pobierasz ostatnio dodanego użytkownika. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 25.06.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dzieki bardzo za odpowiedz, naprowadziles mnie na wlasciwy tor i udalo mi sie zrealizowac to co chialem. Mala instrukcja dla osob z podobnym problemem:
-tworzy wlasny Block implementujac w naszej klasie interfejs BaseBlockService:
Dodatkowo utworzylem usluge, ktora zajmuje sie pobieraniem danych z modeli zeby nie zasmiecac niepotrzebnie metody execute. Nastepnie tworzymy szablon:
Na koniec pozostaje konfiguracja uslugi:
Jezeli ktos chcialby pobrac cos z bazy bezposrednio w metodzie execute, to wystarczy tylko pobrac document menagera i przekazac dane jako parametry do szablonu:
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Mała rada dla Ciebie:
Cytat Injecting a service container is like bringing the whole supermarket to cook, instead of just the ingredients Więc dla Twojego bloku wystarczy ustawić tylko sonata.admin.statistics, a nie cały kontener. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 25.06.2013 Ostrzeżenie: (0%) ![]() ![]() |
Racja, poprawie swoj kod. Dzieki za rade. Swoja droga zastanawia mnie, jak to jest z wydajnoscia podczas wstrzykiwania lancucha uslug, tj. pobieram usluge, ktora w sobie pobiera inna usluge itd. Jeszcze nie zaglebialem sie w szczegoly tego mechanizmu
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.06.2025 - 06:19 |