public function getLatestByPublication($publicationId, $maxResults = 1, $leftJoins = true)
{
$issuesIds = $this->createQueryBuilder('i')->select('i.id')->andWhere('i.publication = :publicationId')->setParameter('publicationId', $publicationId)->orderBy('i.id', 'DESC');
if ($maxResults) {
$issuesIds->setMaxResults($maxResults);
}
$issuesIds = $issuesIds->getQuery()->getArrayResult();
if (count($issuesIds) == 0) {
return;
}
$ids = array();
foreach ($issuesIds as $key => $issue) {
$ids[] = $issue['id'];
}
$query = $this->createQueryBuilder('i')->where('i.id IN (:ids)')->setParameter('ids', $ids);
if ($leftJoins) {
$query->select('i', 'l', 's')->leftJoin('i.language', 'l')->leftJoin('i.sections', 's');
}
$query->orderBy('i.id', 'DESC');
return $query->getQuery();
}