Wpis z mikrobloga

Mirki, mam takie coś:
W Bazie danych przechowuję:
użytkownicy
wyzwania
zadania
wyniki
achievements.

Chciałbym pobrać z bazy danych wszystkich użytkowników, którzy biorą udział w wyzwaniu, a następnie zrobić ORDER BY wyniki + achievements DESC. Do tego musi być zrobiona paginacja. Korzystam z KNPaginator, więc muszę przekazać do niego query, dlatego zwykły SQL odpada.
Czy da się to zrobić korzystając z query builder?

#symfony2 #symfony #doctrine #php
  • 6
@mariecziek: musisz pobrać z bazy danych wszystkich użytkowników, którzy biorą udział w wyzwaniu, a następnie zrobić ORDER BY wyniki + achievements DESC.
Ty nie szukasz podpowiedzi jak to zrobić tylko całego rozwiązania. Zadaj precyzyjne pytanie to otrzymasz odpowiedź. Jak nie umiesz w dql to napisz w sql a później przepisz na dql
@mariecziek:
$query=$em->createBuilder()
->select('u')
->from('entitywyzwania','w')
->leftJoin('w.uzytkownicy','u')
->leftJoin('u.wyniki','wy')
->leftJoin('u.achievments','a')
->where('w.kolumna = :wyzwanie')
->setParameter('wyzywanie',$wyzwanie)
->orderBy('a.kolumna + wy.kolumna','DESC')
->getQuery();

nie napisałeś nic o relacjach więc wrzucam na ślepo