public function articlesCount(Playlist $playlist, array $languages = array(), $publishedOnly = true) { $em = $this->getEntityManager(); $query = $em->createQueryBuilder(); $query->select('count(distinct pa.articleNumber)')->from('Newscoop\\Entity\\PlaylistArticle', 'pa')->innerJoin('pa.article', 'a', 'WITH', 'pa.articleNumber = a.number')->leftJoin('a.language', 'l')->where('pa.playlist = ?1')->orderBy('pa.id'); if (!empty($languages)) { $query->andWhere('l.code IN(?2)')->setParameter(2, $languages); } if ($publishedOnly) { $query->andWhere('a.workflowStatus = \'Y\''); } $query->setParameter(1, $playlist); if (!is_null($lang)) { $query->setParameter(2, $lang->getId()); } $count = $query->getQuery()->getSingleScalarResult(); return $count; }