Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SF][SF2][Symfony2]Grupowanie wyników w widoku
ShaggyAG
post
Post #1





Grupa: Zarejestrowani
Postów: 111
Pomógł: 11
Dołączył: 12.10.2014
Skąd: Tarnów

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


Witam,

Mam w bazie danych tabele X z kolumnami id | date | time | removed
Dane pobieram zapytaniem:
  1. $entities = $repo->createQueryBuilder('s')
  2. ->where('s.date >= :fromDate AND s.removed=0')
  3. ->setParameter(':fromDate', $fromDate)
  4. ->addOrderBy('s.date', 'ASC')
  5. ->addOrderBy('s.time', 'ASC')
  6. ->getQuery();

uzyskany wynik w widoku chce wyświetlić w ten sposób by wyniki posiadające tą samą wartość 'date' były wewnątrz tego samego elementu.
czyli mniej wiecej tak
  1. <div>
  2. wyniki z date =1
  3. </div>
  4. <div>
  5. wyniki z date =2
  6. </div>
  7. ...

A teraz moje pytanie:)
Na jakim etapie najlepiej pogrupować te dane?
Czy da się to zrobić na poziomie doctrine?
by zwróciło wynik w zagnieżdżonych tablicach?
czy lepiej obrobić te dane pętlami for w kontrolerze?
czy może bawić sie z tym w widoku?

Z góry dziękuje za rady
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ShaggyAG
post
Post #2





Grupa: Zarejestrowani
Postów: 111
Pomógł: 11
Dołączył: 12.10.2014
Skąd: Tarnów

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


Dziękuje za Twoją odpowiedź.
Niestety nadal nie udało mi się uzyskać zamierzonego efektu.
Kod wygląda następująco:
  1. $qb = $em->createQueryBuilder();
  2. $qb->select('a', $qb->expr()->count('a.date'))
  3. ->from('DarekSlotBundle:Slot', 'a')
  4. ->groupBy('a.date');
  5.  
  6. $test = $qb->getQuery()->getResult();

a zwracany wynik :
  1. array:4 [&#9660;
  2. 0 => array:2 [&#9660;
  3. 0 => Slot {#836 ▶}
  4. 1 => "1"
  5. ]
  6. 1 => array:2 [&#9660;
  7. 0 => Slot {#876 ▶}
  8. 1 => "1"
  9. ]
  10. 2 => array:2 [&#9660;
  11. 0 => Slot {#881 ▶}
  12. 1 => "1"
  13. ]
  14. 3 => array:2 [&#9660;
  15. 0 => Slot {#886 ▶}
  16. 1 => "4"
  17. ]
  18. ]

Docelowo chciałbym w ostatniej tablicy
  1. 3 => array:2 [&#9660;
  2. 0 => Slot {#886 ▶}
  3. 1 => "4"
  4. ]

znajdowały się wszystkie te 4 pasujące rezultaty(slot).
Pytanie czy da się to w ogóle zrobić? Na poziomie sql
Go to the top of the page
+Quote Post

Posty w temacie


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: 7.10.2025 - 08:15