function EntityResource::getPagerQueries
Same name in other branches
- 9 core/modules/jsonapi/src/Controller/EntityResource.php \Drupal\jsonapi\Controller\EntityResource::getPagerQueries()
- 8.9.x core/modules/jsonapi/src/Controller/EntityResource.php \Drupal\jsonapi\Controller\EntityResource::getPagerQueries()
- 11.x core/modules/jsonapi/src/Controller/EntityResource.php \Drupal\jsonapi\Controller\EntityResource::getPagerQueries()
Get the query param array.
Parameters
string $link_id: The name of the pagination link requested.
int $offset: The starting index.
int $size: The pagination page size.
array $query: The query parameters.
int $total: The total size of the collection.
Return value
array The pagination query param array.
1 call to EntityResource::getPagerQueries()
- EntityResource::getPagerLinks in core/
modules/ jsonapi/ src/ Controller/ EntityResource.php - Get the pager links for a given request object.
File
-
core/
modules/ jsonapi/ src/ Controller/ EntityResource.php, line 1339
Class
- EntityResource
- Process all entity requests.
Namespace
Drupal\jsonapi\ControllerCode
protected static function getPagerQueries($link_id, $offset, $size, array $query = [], $total = 0) {
$extra_query = [];
switch ($link_id) {
case 'next':
$extra_query = [
'page' => [
'offset' => $offset + $size,
'limit' => $size,
],
];
break;
case 'first':
$extra_query = [
'page' => [
'offset' => 0,
'limit' => $size,
],
];
break;
case 'last':
if ($total) {
$extra_query = [
'page' => [
'offset' => (ceil($total / $size) - 1) * $size,
'limit' => $size,
],
];
}
break;
case 'prev':
$extra_query = [
'page' => [
'offset' => max($offset - $size, 0),
'limit' => $size,
],
];
break;
}
return array_merge($query, $extra_query);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.