Jestem początkującym symfony i chcę zrobić blog z ramami. Używam repozytorium, aby uzyskać artykuły w domu za pomocą tej metody:Ograniczenie i przesunięcie querybuilder doktryny
public function getHomeArticles($offset = null, $limit = null)
{
$qb = $this->createQueryBuilder('a')
->leftJoin('a.comments', 'c')
->addSelect('c')
->addOrderBy('a.created', 'DESC');
if (false === is_null($offset))
$qb->setFirstResult($offset);
if (false === is_null($limit))
$qb->setMaxResults($limit);
return $qb->getQuery()
->getResult();
}
tak w mojej bazie danych mam 10 artykułów. W moim BlogController używam:
$blog = $em->getRepository('TestBlogBundle:Article')
->getHomeArticles(3,4);
Z tym chcę 4 artykuły. Ale w zamian mam też jeden artykuł.
Na czym polega problem?
Cóż, wszystko wygląda dobrze oprócz "addSelect (" c ') "spróbuj usunąć ten wiersz kodu. Upewnij się również, że w bazie danych jest naprawdę 10 lub więcej komentarzy. No cóż, artykuł [url] http://stackoverflow.com/questions/10701792/doctrine2-limiting-with-left-joins-pagination-best-practice [/ url] może pomóc. –
dziękuję Vadim. Mam 10 artykułów (i 20 komentarzy). Próbuję usunąć addSelect, ale to nie działa. nie rozumiem, dlaczego ten kod nie działa ... – Astram56