src/Repository/UserRepository.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Repository;
  3. use App\Entity\User;
  4. use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
  5. use Doctrine\Persistence\ManagerRegistry;
  6. use Symfony\Bridge\Doctrine\RegistryInterface;
  7. /**
  8.  * @method User|null find($id, $lockMode = null, $lockVersion = null)
  9.  * @method User|null findOneBy(array $criteria, array $orderBy = null)
  10.  * @method User[]    findAll()
  11.  * @method User[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  12.  */
  13. class UserRepository extends ServiceEntityRepository
  14. {
  15.     public function __construct(ManagerRegistry $registry)
  16.     {
  17.         parent::__construct($registryUser::class);
  18.     }
  19.     // /**
  20.     //  * @return User[] Returns an array of User objects
  21.     //  */
  22.     /*
  23.     public function findByExampleField($value)
  24.     {
  25.         return $this->createQueryBuilder('userId')
  26.             ->andWhere('u.exampleField = :val')
  27.             ->setParameter('val', $value)
  28.             ->orderBy('userId.id', 'ASC')
  29.             ->setMaxResults(10)
  30.             ->getQuery()
  31.             ->getResult()
  32.         ;
  33.     }
  34.     */
  35.     public function findAllWithSearch(?string $term)
  36.     {
  37.         $qb $this->createQueryBuilder('userId')
  38.             ->leftJoin('userId.children''children')
  39.             ->addSelect('children')
  40.         ;
  41.         if($term){
  42.             $qb->andWhere('userId.email = :term OR userId.lastname = :term OR children.lastName = :term')
  43.                 ->setParameter('term'$term);
  44.         }
  45.         return $qb->getQuery()->getOneOrNullResult();
  46.     }
  47.     public function findMultipleWithSearch(?string $term)
  48.     {
  49.         $qb $this->createQueryBuilder('userId')
  50.             ->leftJoin('userId.children''children')
  51.             ->addSelect('children')
  52.         ;
  53.         if($term){
  54.             $qb->andWhere('userId.email = :term OR userId.lastname = :term OR children.lastName = :term')
  55.                 ->setParameter('term'$term);
  56.         }
  57.         return $qb->getQuery()->getResult();
  58.     }
  59.     public function findUsersWithActiveSubscription()
  60.     {
  61.         $today = new \DateTime();
  62.         $limit $today->modify('+7 days');
  63.         $qb$this->createQueryBuilder('user')
  64.             ->join('user.subscriptionOrders''subscriptionOrders')
  65.             ->andWhere('subscriptionOrders.lastPaidCourse > :limit')
  66.             ->setParameter('limit'$limit)
  67.             ->andWhere('subscriptionOrders.participant IS NULL')
  68.             ;
  69.         return $qb->orderBy('user.id''ASC')->getQuery()->getResult();
  70.     }
  71.     public function findUsersWithActiveSession()
  72.     {
  73.         $today = new \DateTime();
  74.         $limit $today->modify('+7 days');
  75.         $qb $this->createQueryBuilder('user')
  76.             ->join('user.sessionOrder''sessionOrder')
  77.             ->join('sessionOrder.session''session')
  78.             ->andWhere('session.endDate > :limit')
  79.             ->setParameter('limit'$limit)
  80.             ->andWhere('sessionOrder.participant IS NULL')
  81.             ;
  82.         return $qb->orderBy('user.id''ASC')->getQuery()->getResult();
  83.     }
  84.     /*
  85.     public function findOneBySomeField($value): ?User
  86.     {
  87.         return $this->createQueryBuilder('userId')
  88.             ->andWhere('userId.exampleField = :val')
  89.             ->setParameter('val', $value)
  90.             ->getQuery()
  91.             ->getOneOrNullResult()
  92.         ;
  93.     }
  94.     */
  95. }