public function getArticle($number, $language = null) { $em = $this->getEntityManager(); $queryBuilder = $em->getRepository('Newscoop\\Entity\\Article')->createQueryBuilder('a')->select('a', 'p', 'i', 's', 'l', 'u', 'ap')->leftJoin('a.packages', 'p')->leftJoin('a.issue', 'i')->leftJoin('a.section', 's')->leftJoin('a.language', 'l')->leftJoin('a.lockUser', 'u')->leftJoin('a.publication', 'ap'); $queryBuilder->where('a.number = :number')->setParameter('number', $number); if (!is_null($language)) { if (!is_numeric($language)) { $queryBuilder->andWhere('l.code = :code')->setParameter('code', $language); } else { $queryBuilder->andWhere('l.id = :id')->setParameter('id', $language); } } $query = $queryBuilder->getQuery(); return $query; }