*/ class TaskRepository extends ServiceEntityRepository { protected PaginatorInterface $paginator; protected Request $request; public function __construct(ManagerRegistry $registry, PaginatorInterface $paginator, RequestStack $requestStack) { parent::__construct($registry, Task::class); $this->paginator = $paginator; $this->request = $requestStack->getCurrentRequest(); } // /** // * @return Task[] Returns an array of Task objects // */ // public function findByExampleField($value): array // { // return $this->createQueryBuilder('t') // ->andWhere('t.exampleField = :val') // ->setParameter('val', $value) // ->orderBy('t.id', 'ASC') // ->setMaxResults(10) // ->getQuery() // ->getResult() // ; // } // public function findOneBySomeField($value): ?Task // { // return $this->createQueryBuilder('t') // ->andWhere('t.exampleField = :val') // ->setParameter('val', $value) // ->getQuery() // ->getOneOrNullResult() // ; // } public function findByProjectPaginated(Project $project) { $query = $this->createQueryBuilder('t') ->andWhere('t.project = :project') ->setParameter('project', $project) ->getQuery(); return $this->paginator->paginate( $query, $this->request->query->getInt('page', 1), 100 ); } }