Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SF][SF2]Sortowanie ArrayCollection, Relacja Many-to-many
mimol
post
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 5
Dołączył: 10.12.2007

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


Witam.
Mój kontroler
  1. $em = $this->getDoctrine()->getManager();
  2. $entity = $em->getRepository('MyMoviesBundle:Category')->findOneBySlug($slug);
  3. $movies = $entity->getMovies();

Jak sortować elementy w $movies? Nie mogę używać adnotacji w Movies Entity, ponieważ raz chcę sortować wg nazwy, a raz wg ID.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
ano
post
Post #2





Grupa: Zarejestrowani
Postów: 435
Pomógł: 40
Dołączył: 16.02.2003
Skąd: Wrocław

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


W modelu Category stwórz metody typu:
getMoviesSortedBy...()
i w nich do sortowania użyj Criteria API:
http://docs.doctrine-project.org/en/latest...ing-collections
Go to the top of the page
+Quote Post
mimol
post
Post #3





Grupa: Zarejestrowani
Postów: 247
Pomógł: 5
Dołączył: 10.12.2007

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


Wielkie dzięki, jednak to jest to co chcę osiągnąć.
Używając Criteria API do bazy leci dodatkowe zapytanie, czy jest jakaś możliwość aby żadne dodatkowe zapytanie nie było dodawane do bazy?
Coś jak order w adnotations tylko że dynamiczne?
Go to the top of the page
+Quote Post
Crozin
post
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


W takim wypadku zmuszony będziesz skorzystać z DQL-a i w nim jawnie określić kolejność zwracanych rekordów (ORDER BY).
Go to the top of the page
+Quote Post
mimol
post
Post #5





Grupa: Zarejestrowani
Postów: 247
Pomógł: 5
Dołączył: 10.12.2007

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


Crozin
mógłbyś to mi wytłumaczyć/ podesłać jakiś link?
Masz na myśli Pobranie Entity używając DQL napisanego tak, aby zwracał od razu posortowane elementy?

Jeśli tak, to czy znasz jakieś dobre strony z toturialem do DQL opisującego relacje (oprócz oficjalnej strony Doctrine)?

Ten post edytował mimol 7.02.2013, 23:50:55
Go to the top of the page
+Quote Post
Crozin
post
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


@mimol: A w oficjalnej dokumentacji czegoś brakuje w temacie DQL-a i relacji?
Go to the top of the page
+Quote Post
mimol
post
Post #7





Grupa: Zarejestrowani
Postów: 247
Pomógł: 5
Dołączył: 10.12.2007

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


hmm, w oficjalnej wersji to nie jest tutorial.
Znajac SQL'a, cięzko jest mi napisać joiny, łatwiej się tego uczyć na jakiś przykładach dobrze omówionych.
Dla mnie za mało jest przykładów, nie wszystko mogę napisać, a żeby coś odniosło pożądany skutek muszę nad tym długo siedzieć (metoda prób i błędów).
Jeśli była by strona z poradnikiem jak używać Query buildera, wraz z przykładami było by mi łatwiej.
Go to the top of the page
+Quote Post
ano
post
Post #8





Grupa: Zarejestrowani
Postów: 435
Pomógł: 40
Dołączył: 16.02.2003
Skąd: Wrocław

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


Cytat(mimol @ 7.02.2013, 23:35:23 ) *
Wielkie dzięki, jednak to jest to co chcę osiągnąć.
Używając Criteria API do bazy leci dodatkowe zapytanie, czy jest jakaś możliwość aby żadne dodatkowe zapytanie nie było dodawane do bazy?
Coś jak order w adnotations tylko że dynamiczne?


Tak, jest lazy loading więc do bazy poleci dodatkowe zapytanie (gdy tej kolekcji jeszcze nie załadowaleś do pamięci). Jak kolekcja juz jest w pamieci to nie leci wtedy żadne dodatkowe zapytanie.
Go to the top of the page
+Quote Post
mimol
post
Post #9





Grupa: Zarejestrowani
Postów: 247
Pomógł: 5
Dołączył: 10.12.2007

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


@ano
Więc, jeśli stworze zapytanie, które pobiera Cateogry wraz z odpowiadającymi filmami i następnie użyje Criteria API, będzie tylko 1 zapytanie leciało do bazy?
Go to the top of the page
+Quote Post
ano
post
Post #10





Grupa: Zarejestrowani
Postów: 435
Pomógł: 40
Dołączył: 16.02.2003
Skąd: Wrocław

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


Tak.
Ale czy nie łatwiej samemu to sprawdzić?
Go to the top of the page
+Quote Post
mimol
post
Post #11





Grupa: Zarejestrowani
Postów: 247
Pomógł: 5
Dołączył: 10.12.2007

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


Nie za dobrze potrafię SQL/DQL, więc jeśli mam się męczyć cały dzień, to chciałbym wiedzieć czy jest po co=)
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: 14.09.2025 - 19:15