Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony2][Doctrine]Pobieranie ilosci zdjec dla galerii
Forum PHP.pl > Forum > PHP > Frameworki
marcio
Czesc mam problem potrzebuje pobrac ilosc zdjec dla kazdej galerii by potem moc to wyswietlic.
Takie zapytanie mysql dziala:
  1. SELECT g . * , (
  2.  
  3. SELECT count( * )
  4. FROM cmf_gallery_images i
  5. WHERE g.id = i.gallery_id
  6. ) AS count
  7. FROM `cmf_gallery` g
  8. LIMIT 0 , 30

Problem polega na tym gdy uzywam Doctrine2 i QeuryBuilder:
  1. public function getGalleries($limit = 0, $offset = 0) {
  2. $criteria = $this->getCriteriaParameters();
  3. $orderBy = array(
  4. 'position' => 'ASC',
  5. 'created_at' => 'DESC'
  6. );
  7.  
  8. $query = $this->getQueryBuilder();
  9. $query->addSelect('(select count(*) from Meritoo\Cmf\GalleryBundle\Entity\GalleryImage i WHERE t.id=i.gallery_id) as count');
  10.  
  11. print $query->getDQL();
  12. return $query->getQuery()->getResult();
  13. }

Zapytanie wyglada tak:
Kod
SELECT t, (select count(*) from Meritoo\Cmf\GalleryBundle\Entity\GalleryImage i WHERE t.id=i.gallery_id) as count FROM Meritoo\Cmf\GalleryBundle\Entity\Gallery t WHERE t.deleted_at is null

I zwraca mi blad:
Cytat
[Semantical Error] line 0, col 114 near 'FROM Meritoo\Cmf\GalleryBundle\Entity\Gallery': Error: Class 'FROM' is not defined.

Czy ktos z was wiec jak wykonac takie pod zapytanie?
pamil
Kod
COUNT(g.images)

Twoja entity galerii powinna zawierać zmienną, która jest obiektem ArrayCollection, w której przechowyujesz obiekty-obrazki. Po prostu zliczasz ilość elementów tej właściowości w zapytaniu.
marcio
Moje rozwiazanie nie jest wydajne bo robi zapytania w petli...
Twoje sprawdzalem nie dziala na moim przypadku, lecz naprowadzilo mnie na inna droge.
Bede robil 2 zapytania jedno wyciagnie galerie drugie wyciagnie ilosc zdjec dla danej galeri i bede grupowac to za pomoca id.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.