repository = $entityManager->getRepository(SocialIssue::class); } public function find($id): ?SocialIssue { return $this->repository->find($id); } /** * @return array */ public function findAll(): array { return $this->repository->findAll(); } /** * @return array|SocialIssue[] */ public function findAllActive(): array { return $this->buildQueryWithDesactivatedDateCriteria()->getQuery()->getResult(); } /** * @param mixed|null $limit * @param mixed|null $offset * * @return array */ public function findBy(array $criteria, ?array $orderBy = null, $limit = null, $offset = null): array { return $this->repository->findBy($criteria, $orderBy, $limit, $offset); } public function findOneBy(array $criteria, ?array $orderBy = null): ?SocialIssue { return $this->repository->findOneBy($criteria, $orderBy); } /** * @return class-string */ public function getClassName(): string { return SocialIssue::class; } private function buildQueryWithDesactivatedDateCriteria(): QueryBuilder { $qb = $this->repository->createQueryBuilder('si'); $qb->where('si.desactivationDate is null') ->orWhere('si.desactivationDate > :now') ->orderBy('si.ordering', 'ASC') ->setParameter('now', new DateTime('now')); return $qb; } }