src/Repository/LiveSessionRepository.php line 24

Open in your IDE?
  1. <?php
  2. namespace App\Repository;
  3. use App\Entity\LiveSession;
  4. use App\Entity\PostCategory;
  5. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  6. use Doctrine\Persistence\ManagerRegistry;
  7. use DateTime;
  8. /**
  9.  * @method LiveSession|null find($id, $lockMode = null, $lockVersion = null)
  10.  * @method LiveSession|null findOneBy(array $criteria, array $orderBy = null)
  11.  * @method LiveSession[]    findAll()
  12.  * @method LiveSession[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  13.  */
  14. class LiveSessionRepository extends ServiceEntityRepository
  15. {
  16.     public function __construct(ManagerRegistry $registry)
  17.     {
  18.         parent::__construct($registryLiveSession::class);
  19.     }
  20.     public function search(int $page 1int $limit 3, ?string $keywords, ?DateTime $date)
  21.     {
  22.         $date = ($date) ? $date : new DateTime();
  23.         $date->setTime(000);
  24.         $query $this->createQueryBuilder('s');
  25.         $query->where('s.date >= :date')->setParameter('date'$date);
  26.         if($keywords && $keywords != '') {
  27.             $query->andWhere('LOWER(s.title) LIKE :keywords OR LOWER(s.description) LIKE :keywords')->setParameter('keywords''%'.strtolower($keywords).'%');
  28.         }
  29.         $query->setMaxResults($limit)->setFirstResult((($page-1)*$limit));
  30.         return $query->getQuery()->getResult();
  31.     }
  32.     public function getToSee(PostCategory $category, ?string $slug)
  33.     {
  34.         $query $this->createQueryBuilder('e');
  35.         $query->where('e.slug != :slug')->setParameter('slug'$slug);
  36.         if($category) {
  37.             $query->andWhere('e.category = :category')->setParameter('category'$category);
  38.         }
  39.         $query->setMaxResults(3);
  40.         return $query->getQuery()->getResult();
  41.     }
  42. }