@@ -49,7 +49,7 @@ public function allowUnlimitedResultsPerPage(): bool
4949 */
5050 protected function wantsAllResults (Request $ request ): bool
5151 {
52- return $ request ->input ('per_page ' ) == -1 ;
52+ return $ request ->input ('per_page ' , $ this -> getDefaultPerPage () ) == -1 ;
5353 }
5454
5555 /**
@@ -64,6 +64,16 @@ protected function getPerPage(Request $request, int $default = 0)
6464 return abs ($ request ->input ('per_page ' , $ default ));
6565 }
6666
67+ public function getDefaultPerPage (): int
68+ {
69+ return 10 ;
70+ }
71+
72+ public function getMaxPerPage (): int
73+ {
74+ return 50 ;
75+ }
76+
6777 protected function getQueryBuilder (): QueryBuilder
6878 {
6979 return QueryBuilder::for ($ this ->getBaseQuery ());
@@ -100,7 +110,7 @@ protected function indexEndpoint(Request $request)
100110 return $ query ->get ();
101111 }
102112
103- return $ query ->paginate ($ this ->getPerPage ($ request , 10 ))
113+ return $ query ->paginate ($ this ->getPerPage ($ request , $ this -> getDefaultPerPage () ))
104114 ->appends ($ request ->except (['page ' ]));
105115 }
106116
@@ -169,7 +179,7 @@ protected function authorizeView(Model $model): void
169179 protected function getIndexValidation (): array
170180 {
171181 return [
172- 'per_page ' => "integer| " . ($ this ->allowUnlimitedResultsPerPage () ? 'min:-1 ' : 'between:1,50 ' ),
182+ 'per_page ' => "integer| " . ($ this ->allowUnlimitedResultsPerPage () ? 'min:-1 ' : 'between:1, ' . $ this -> getMaxPerPage () ),
173183 'page ' => 'integer|min:1 ' ,
174184 ];
175185 }
0 commit comments