Skip to content

Instantly share code, notes, and snippets.

@GeekyGeeky
Created November 18, 2024 14:33
Show Gist options
  • Save GeekyGeeky/98f05e7227afef2f19fb96f0d4d2ba8f to your computer and use it in GitHub Desktop.
Save GeekyGeeky/98f05e7227afef2f19fb96f0d4d2ba8f to your computer and use it in GitHub Desktop.
Sample of offset pagination in Laravel
<?php
class UserController {
protected $properties = ["id", "first_name", "last_name", "phone", "email", "created_at"];
protected function getPaginatedData(string $key, LengthAwarePaginator $data)
{
return [
$key => $data->items(),
"current_page" => $data->currentPage(),
"prev_page_url" => $data->previousPageUrl(),
"next_page_url" => $data->nextPageUrl(),
"total" => $data->total()
];
}
public function getUsers(Request $request)
{
$perPage = intval($request->get('limit', 100));
$users = User::query()->latest()->paginate($perPage, $this->properties);
return response()->ok(
$this->getPaginatedData('users', $users),
'Available users'
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment