Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] 1.4 Paginacja, wg. właściwośći obiektu a nie numeru strony.
Juzek
post
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.08.2007

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


Witam.

Szukam sposobu/pluginu, który podzieliłby wynik zapytania na strony przyjmując wartość któregoś pola a nie nr strony.

Przykładowo: baza galerii zdjęć, w tabeli ze zdjęciami trzymane są między innymi id_zdjecia, ... , opis, ... ,....
Podając np id_zdjecia = 400, zostanie zwrócony id poprzedniego zdjęcia (niekoniecznie 400 - 1) i id następnego zdjęcia (niekoniecznie 400 + 1).
Oczywiście nie ma problemu w napisaniu własnej tego typu metody, ale chcę się trzymać rozwiązań "dedykowanych" dla symfony.

Dziękuję z góry za rady, wracam na Google.

Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
destroyerr
post
Post #2





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


Czyli chodzi Ci o poprzedni i następny element? To nie ma nic wspólnego z paginacją.
Pluginu takiego nie kojarzę. Sposób nie jest skomplikowany i zamykanie tego w plugin jest chyba pozbawione sensu:
  1. <?php
  2.  
  3. class PhotoQuery extends BasePhotoQuery
  4. {
  5. public function next(Photo $photo, $limit = 1)
  6. {
  7. return $this
  8. ->where('Photo.id > ?', $photo->getId())
  9. ->limit($limit)
  10. ;
  11. }
  12.  
  13. public function prev(Photo $photo, $limit = 1)
  14. {
  15. return $this
  16. ->where('Photo.id > ?', $photo->getId())
  17. ->limit($limit)
  18. ;
  19. }
  20. }
  21.  
  22. //wykorzystanie
  23. $photo = PhotoQuery::create()->findOneById($request->getParameter('id'));
  24. $nextPhoto = PhotoQuery::create()->next($photo);
  25. $prevPhoto = PhotoQuery::create()->prev($photo);
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 08:08