Newscoop\Entity\Repository\IssueRepository::getLatestByPublication PHP Метод

getLatestByPublication() публичный Метод

Retrieve the latest issue. Optional an array for filtering can be specified. Think of parameters: Publication, Languages, published or not, etc.
public getLatestByPublication ( $publicationId, boolean | integer $maxResults = 1, boolean $leftJoins = true ) : Issue | null
$maxResults boolean | integer Max results to show
$leftJoins boolean Adds left joins to the query to get section and language
Результат Newscoop\Entity\Issue | null
    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();
    }