findByMerchantQuery() ; $query->leftJoin('e.productCategories', 'cat'); $query->andWhere(':category MEMBER OF e.productCategories'); $query->andWhere('e.status = 1'); $query->setParameter('category', $category->getId()); return $query->getQuery()->getResult() ; } public function getProductFamiliesNovelties(){ $query = $this->findByMerchantQuery(); $query->andWhere('e.status = 1'); $query->andWhere(':now <= e.propertyNoveltyExpirationDate') ->setParameter('now', new \DateTime()) ; return $query->getQuery()->getResult() ; } public function getProductFamiliesLargeVolumes(){ $query = $this->findByMerchantQuery() ; $query->leftJoin('e.productCategories', 'cat'); $query->andWhere('e.status = 1'); $query->andWhere('e.propertyLargeVolume = 1'); return $query->getQuery()->getResult() ; } public function getProductFamiliesOrganics(){ $query = $this->findByMerchantQuery() ; $query->leftJoin('e.productCategories', 'cat'); $query->andWhere('e.status = 1'); $query->andWhere('e.propertyOrganicLabel IS NOT NULL'); return $query->getQuery()->getResult() ; } public function findByTerms($terms, $maxResults = false) { $query = $this->findByMerchantQuery() ; $query->leftJoin('e.productCategories', 'cat'); $query->andWhere('e.status = 1'); $query->andWhere('e.title LIKE :terms'); $query->setParameter(':terms', '%'.$terms.'%') ; if($maxResults) { $query->setMaxResults($maxResults) ; } return $query->getQuery()->getResult() ; } }