diff --git a/src/JsonApi/State/JsonApiProvider.php b/src/JsonApi/State/JsonApiProvider.php index bf86cb406de..7fc03ce415d 100644 --- a/src/JsonApi/State/JsonApiProvider.php +++ b/src/JsonApi/State/JsonApiProvider.php @@ -67,7 +67,7 @@ public function provide(Operation $operation, array $uriVariables = [], array $c if ( \is_array($pageParameter) ) { - $filters = array_merge($pageParameter, $filters); + $filters = array_merge($this->transformPagination($pageParameter), $filters); } [$included, $properties] = $this->transformFieldsetsParameters($queryParameters, $operation->getShortName() ?? ''); @@ -114,4 +114,13 @@ private function transformFieldsetsParameters(array $queryParameters, string $re return [$included, $properties]; } + + private function transformPagination(array $pageParameter): array + { + return array_filter([ + 'page' => $pageParameter['number'] ?? null, + 'itemsPerPage' => $pageParameter['size'] ?? null, + 'pagination' => $pageParameter['pagination'] ?? null, + ], fn($v) => $v !== null); + } }