Swego czasu jak pisałem aplikacje w Kohanie byłem zmuszony do napisania ręcznie mechanizmu do sortowania elementów w backendzie, np.: produktów. Symfony ma gotowy plugin do tego.
https://github.com/bshaffer/csDoctrineActAsSortablePlugin
Wystarczy w naszym YAMLu dodać do danego modelu
Model: actAs: [Sortable]
oraz odpalić mogrację na bazie danych i działa out of box :) Nawet backend jest praktycznie załatwiony, więc klient może odrazu se sortować bez naszej ingerencji w kod backendu.
Czasami jednak elementy są podzielone na kategorię i chcemy sortować je wewnątrz kategorii. No problem u YAMLu ustawiamy:
Model:
actAs:
Sortable:
uniqueBy: [category_id]
Zamiast kodzić ficzer przez kilka godzin, można zainstalować plugin i dopisać kilka linijek kodu w YAML(1-2 minut pracy). Efekt ten sam.
Pingback: A week of symfony #266 (30 January -> 5 February 2012) « We are php