Ojs\JournalBundle\Entity\IssueRepository::getByYear PHP Method

getByYear() public method

public getByYear ( Journal $journal, boolean $withFutureIssues = false ) : array
$journal Journal
$withFutureIssues boolean
return array
    public function getByYear(Journal $journal, $withFutureIssues = false)
    {
        $query = $this->createQueryBuilder('issue')->select('issue')->where('issue.journal = :journal')->andWhere('issue.published = true')->setParameter('journal', $journal)->orderBy('issue.datePublished', 'DESC');
        if (!$withFutureIssues) {
            $query->andWhere('issue.inPress = false');
        }
        $query = $query->getQuery();
        $years = [];
        /** @var Issue $issue */
        foreach ($query->getResult() as $issue) {
            if ($issue->getYear() !== null) {
                $years[$issue->getYear()->format('Y')][] = $issue;
            }
        }
        ksort($years);
        return array_reverse($years, true);
    }