src/Aqarmap/Bundle/AnnouncementBundle/Repository/AnnouncementRepository.php line 44

Open in your IDE?
  1. <?php
  2. namespace Aqarmap\Bundle\AnnouncementBundle\Repository;
  3. use Doctrine\ORM\EntityRepository;
  4. use Doctrine\ORM\NonUniqueResultException;
  5. class AnnouncementRepository extends EntityRepository
  6. {
  7.     /**
  8.      * @return int|mixed|string|null
  9.      *
  10.      * @throws NonUniqueResultException
  11.      */
  12.     public function getActiveAnnouncement(array $criteria = [])
  13.     {
  14.         $criteria array_merge([
  15.             'topBar' => null,
  16.             'appearOnMobile' => null,
  17.         ], $criteria);
  18.         $date = new \DateTime();
  19.         $date $date->format('Y-m-d H:i:s');
  20.         $QueryBuilder $this->createQueryBuilder('a');
  21.         if ($criteria['topBar']) {
  22.             $QueryBuilder
  23.                 ->andWhere($QueryBuilder->expr()->in('a.topBar'':topBar'))
  24.                 ->setParameter('topBar'$criteria['topBar'])
  25.             ;
  26.         }
  27.         if ($criteria['appearOnMobile']) {
  28.             $QueryBuilder
  29.                 ->andWhere($QueryBuilder->expr()->in('a.appearOnMobile'':appearOnMobile'))
  30.                 ->setParameter('appearOnMobile'$criteria['appearOnMobile'])
  31.             ;
  32.         }
  33.         $QueryBuilder
  34.             ->andWhere($QueryBuilder->expr()->gte('a.endAt'':endAt'))
  35.             ->setParameter('endAt'$date);
  36.         return $QueryBuilder->getQuery()->getOneOrNullResult();
  37.     }
  38. }