src/Repository/AdvertiserRepository.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\Repository;
  3. use App\Entity\Advertiser;
  4. use App\Traits\Paginate;
  5. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  6. use Doctrine\ORM\Tools\Pagination\Paginator;
  7. use Doctrine\Persistence\ManagerRegistry;
  8. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  9. /**
  10.  * @method Advertiser|null find($id, $lockMode = null, $lockVersion = null)
  11.  * @method Advertiser|null findOneBy(array $criteria, array $orderBy = null)
  12.  * @method Advertiser[]    findAll()
  13.  * @method Advertiser[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  14.  */
  15. class AdvertiserRepository extends ServiceEntityRepository
  16. {
  17.     use Paginate;
  18.     public function __construct(ManagerRegistry $registry)
  19.     {
  20.         parent::__construct($registryAdvertiser::class);
  21.     }
  22.     /**
  23.      * @deprecated
  24.      * @return Advertiser
  25.      */
  26.     public function findBySubdomain(mixed $subdomain)
  27.     {
  28.         return $this->findOneBySubdomain($subdomain);
  29.     }
  30.     public function findOneBySubdomain(string $subdomain): ?Advertiser
  31.     {
  32.         return $this->findOneBy([
  33.             'subdomain' => $subdomain,
  34.         ]);
  35.     }
  36.     public function findByPageAndFilter($page 1$max 50$name null)
  37.     {
  38.         if (null === $max) {
  39.             $max 50;
  40.         }
  41.         $dql $this->createQueryBuilder('a');
  42.         if (null !== $name && '' !== $name) {
  43.             $dql->andWhere('a.title LIKE :title');
  44.             $dql->setParameter('title''%' $name '%');
  45.         }
  46.         $firstResult = ($page 1) * $max;
  47.         $query $dql->getQuery();
  48.         $query->setFirstResult($firstResult);
  49.         $query->setMaxResults($max);
  50.         $paginator = new Paginator($query);
  51.         if (($paginator->count() <= $firstResult) && !== $page) {
  52.             throw new NotFoundHttpException('Page not found');
  53.         }
  54.         return $paginator;
  55.     }
  56. }