![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Do tej pory używałem knpPanginatora ( https://github.com/KnpLabs/KnpPaginatorBundle ). Jednak do aktualnego zadania wydaje się być nieoptymalny, lub po prostu nie potrafię go optymalnie wykorzystać.
Załóżmy, że mam klasę Category i Product taka jak tutaj : http://symfony.com/doc/current/book/doctri...ps-associations .
Ten kod generuje o ile dobrze pamiętam 3 zapytania 1. liczy ile jest rekordów 2. pobiera id rekordów, które mają być pobrane 3. pobiera rekordy, których id zostały pobrane w poprzednim zapytaniu Dziwi mnie, czemu 2 i 3 zapytanie nie zostały "skumulowane" do jednego. Gdyby moje zapytanie było bardziej skomplikowane, np. miało jakiegoś join, np taki jak w example:
to pierwsze zapytanie wyglądało by tak:
Co jest niepotrzebne, wystarczy dać samo :
Bo wynik będzie ten sam, a czas wykonania kilkanaście razy krótszy. Dlatego ten sposób paginacji odpada. Czy mogę poprosić was o podsunięcie mi innych pomysłów na paginację ? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 10 Dołączył: 16.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
KnpPaginatorBundle korzysta z knp-components. Zobacz sobie po czym dziedziczy SlidingPagination.
Możesz napisać swój paginator i skonfigurować go jako jeden z serwisów. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Najlepiej taki paginator zrobic sobie jako rozszerzenie twig-a i wywolywac go w widoku.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 12:17 |