_em->createQuery($dql); $query->setParameter('feeds', $feeds); if (null !== $offset_start && 0 !== $offset_start) { $query->setFirstResult($offset_start); } if (null !== $how_many) { $query->setMaxResults($how_many); } return $query->getResult(); } /** * @param Feed[]|array $feeds List of feeds instance or feed ids to * @return int */ public function countByFeeds($feeds) { $builder = $this->createQueryBuilder('fe'); $builder ->select($builder->expr()->count('fe')) ->where($builder->expr()->in('fe.feed', ':feeds')) ->setParameter('feeds', $feeds); return $builder->getQuery()->getSingleScalarResult(); } public function getByUserAndFeed(User $user, Feed $feed, $isCount = false) { $qb = $this->createQueryBuilder('fe'); $qb->innerJoin('fe.publisher', 'fp'); $qb->where($qb->expr()->eq('fp.user', ':publisher')); $qb->setParameter(':publisher', $user); $qb->andWhere($qb->expr()->eq('fe.feed', ':feed')); $qb->setParameter(':feed', $feed); if ($isCount) { $qb->select('count(fe)'); return $qb->getQuery()->getSingleScalarResult(); } else { $qb->orderBy('fe.id', 'DESC'); return $qb->getQuery()->getResult(); } } }