Newscoop\NewscoopBundle\Entity\Repository\TopicRepository::getTopics PHP Method

getTopics() public method

Get all topics.
public getTopics ( $languageCode = null ) : Doctrine\ORM\Query
$languageCode Language code
return Doctrine\ORM\Query
    public function getTopics($languageCode = null)
    {
        $meta = $this->getClassMetadata();
        $config = $this->listener->getConfiguration($this->_em, $meta->name);
        $queryBuilder = $this->getQueryBuilder('t')->from($config['useObjectClass'], 't');
        if ($languageCode) {
            $queryBuilder->leftJoin('t.translations', 'tt')->where('tt.locale = :locale')->setParameter('locale', $languageCode);
        }
        $countQueryBuilder = clone $queryBuilder;
        $countQueryBuilder->select('count(t)');
        $queryBuilder->select('t');
        $topicsCount = $countQueryBuilder->getQuery()->getSingleScalarResult();
        $query = $this->setTranslatableHint($queryBuilder->getQuery(), $languageCode);
        $query->setHint('knp_paginator.count', $topicsCount);
        return $query;
    }