1414use CodedMonkey \Dirigent \Package \PackageMetadataResolver ;
1515use Composer \Semver \VersionParser ;
1616use Doctrine \ORM \EntityManagerInterface ;
17+ use Doctrine \ORM \QueryBuilder ;
18+ use EasyCorp \Bundle \EasyAdminBundle \Contracts \Orm \EntityPaginatorInterface ;
1719use EasyCorp \Bundle \EasyAdminBundle \Dto \PaginatorDto ;
18- use EasyCorp \Bundle \EasyAdminBundle \Router \AdminUrlGenerator ;
1920use Symfony \Bundle \FrameworkBundle \Controller \AbstractController ;
2021use Symfony \Component \HttpFoundation \Request ;
2122use Symfony \Component \HttpFoundation \Response ;
@@ -30,7 +31,6 @@ public function __construct(
3031 private readonly PackageRepository $ packageRepository ,
3132 private readonly PackageMetadataResolver $ metadataResolver ,
3233 private readonly MessageBusInterface $ messenger ,
33- private readonly AdminUrlGenerator $ adminUrlGenerator ,
3434 ) {
3535 }
3636
@@ -46,9 +46,7 @@ public function list(Request $request): Response
4646 $ queryBuilder ->setParameter ('query ' , "% {$ query }% " );
4747 }
4848
49- $ paginatorDto = new PaginatorDto (20 , 3 , 1 , true , null );
50- $ paginatorDto ->setPageNumber ($ request ->query ->getInt ('page ' , 1 ));
51- $ paginator = (new PackagePaginator ($ this ->adminUrlGenerator ))->paginate ($ paginatorDto , $ queryBuilder );
49+ $ paginator = $ this ->createPackagePaginator ($ request , $ queryBuilder );
5250 $ packages = $ paginator ->getResults ();
5351
5452 return $ this ->render ('dashboard/packages/list.html.twig ' , [
@@ -293,4 +291,18 @@ public function delete(string $packageName): Response
293291
294292 return $ this ->redirectToRoute ('dashboard_packages ' );
295293 }
294+
295+ private function createPackagePaginator (Request $ request , QueryBuilder $ queryBuilder ): EntityPaginatorInterface
296+ {
297+ $ paginatorDto = new PaginatorDto (20 , 3 , 1 , true , null );
298+ $ paginatorDto ->setPageNumber ($ request ->query ->getInt ('page ' , 1 ));
299+
300+ $ paginator = new PackagePaginator (
301+ $ this ->container ->get ('router ' ),
302+ $ request ->attributes ->get ('_route ' ),
303+ $ request ->attributes ->get ('_route_params ' ),
304+ );
305+
306+ return $ paginator ->paginate ($ paginatorDto , $ queryBuilder );
307+ }
296308}
0 commit comments