Newscoop\NewscoopBundle\Entity\Repository\TopicRepository::getArticleTopics PHP Метод

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

Returns all the associated Topics to an Article.
public getArticleTopics ( integer $articleNr, string $languageCode, string $order = 'asc' ) : Doctrine\ORM\Query
$articleNr integer Article number
$languageCode string Language code in format "en" for example.
$order string Order of the topics, default ascending
Результат Doctrine\ORM\Query Query
    public function getArticleTopics($articleNr, $languageCode, $order = 'asc')
    {
        $em = $this->getEntityManager();
        $articleTopicsIds = $em->getRepository('Newscoop\\Entity\\ArticleTopic')->getArticleTopicsIds($articleNr, true);
        $articleTopicsIds = $articleTopicsIds->getArrayResult();
        $topicsIds = array();
        foreach ($articleTopicsIds as $key => $value) {
            $topicsIds[$key] = $value[1];
        }
        $queryBuilder = $this->createQueryBuilder('t')->where('t.id IN(:ids)')->setParameters(array('ids' => $topicsIds))->orderBy('t.root, t.lft', $order);
        $countQueryBuilder = clone $queryBuilder;
        $countQueryBuilder->select('COUNT(t)');
        $count = $countQueryBuilder->getQuery()->getSingleScalarResult();
        $query = $queryBuilder->getQuery();
        $query->setHint('knp_paginator.count', $count);
        $query = $this->setTranslatableHint($query, $languageCode);
        return $query;
    }