2012-03-06 25 views
6

Mam obiekt z polem ArrayCollection. W adnotacji mogę napisaćDoctrine 2.1: Jak zamówićZgrupować pole w kolekcji?

@ORM\OrderBy({"somefield" = "DESC"})

i zbieranie dostaję od tego podmiotu zostaną automatycznie uporządkowane.

Moje pytanie brzmi, czy istnieje możliwość zamówienia według pól zbiorczych?

Mój obecny problem: Mam 2 pól w jednostce kolekcji: visited i shown chciałbym uporządkować kolekcję przez indeks ocen, czyli: visited/shown. Próbowałem zapisać go w adnotacjach, ale mówi, że powinno to być prawidłowe pole. Wiem, jak to zrobić z DQL, ale nie wiem, jak odtworzyć go w deklaracji jednostki z adnotacjami.

Z góry dziękuję!

Odpowiedz

1

Potrzebujesz operacji matematycznych w instrukcji ORDER BY - w SQL byłby to ORDER BY odwiedził/pokazał DESC. Myślę, że nie można tego zrobić w adnotacjach.

3

Nie jestem pewien, czy rozumiem Twój problem. Ale co

@ORM/OrderBy({"visited" = "DESC", "shown" = "DESC"})

dać w rezultacie?

Od http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/annotations-reference.html#annref-orderby:

DQL Snippet w OrderBy jest dozwolone tylko składać niewykwalifikowanych, nie notowanych nazwami pól i opcjonalnie ASC/DESC pozycyjnej oświadczeniu. Wiele pól jest oddzielonych przecinkiem (,). Odwoływane nazwy pól muszą istnieć w klasie targetEntity adnotacji @ManyToMany lub @OneToMany.

+1

Nie potrzebuje operacji matematycznych w instrukcji ORDER BY - w SQL będzie to "ORDER BY visited/shown DESC". Myślę, że nie można tego zrobić w adnotacjach –

+0

to działa! – coder4show

+0

@ MaciejPyszyński Masz rację, nie można w tym momencie napisać, że to jest odpowiedź, więc mogę to zaakceptować? –