*/ final class FormationRepository extends ServiceEntityRepository implements FormationReadRepositoryInterface { public function __construct(ManagerRegistry $registry) { parent::__construct($registry, Formation::class); } /** * @param list $employees * * @return list */ public function findByDateAndEmployees(DateTimeImmutable $date, array $employees): array { if ([] === $employees) { return []; } $qb = $this->createQueryBuilder('f') ->leftJoin('f.employee', 'e') ->addSelect('e') ->andWhere('f.startDate <= :date') ->andWhere('f.endDate >= :date') ->andWhere('f.employee IN (:employees)') ->setParameter('date', $date) ->setParameter('employees', $employees) ; // @var list return $qb->getQuery()->getResult(); } /** * @param list $employees * * @return list */ public function findByDateRangeAndEmployees(DateTimeImmutable $from, DateTimeImmutable $to, array $employees): array { if ([] === $employees) { return []; } $qb = $this->createQueryBuilder('f') ->leftJoin('f.employee', 'e') ->addSelect('e') ->andWhere('f.startDate <= :to') ->andWhere('f.endDate >= :from') ->andWhere('f.employee IN (:employees)') ->setParameter('from', $from) ->setParameter('to', $to) ->setParameter('employees', $employees) ; // @var list return $qb->getQuery()->getResult(); } }