У меня проблемы с нумерацией страниц в Laravel 10. Я сгенерировал 13 данных из своей базы данных и нахожусь на первой странице, поэтому ожидаю увидеть что-то вроде
«Показано с 1 по 8 из 13 результатов»
но вместо этого мой код отображает сообщение
«Показано с 1 по 13 из 13 результатов»
Что я делаю не так? любая помощь приветствуется.
это мой код:
public function index(Request $request)
{
$client = new \GuzzleHttp\Client();
$perPage = $request->query('per_page') ? : 8;
$page = $request->query('page') ? : 1;
$url = "http://localhost/api/culinary?page=$page&per_page=$perPage";
$response = $client->request('GET', $url);
$json = json_decode((string)$response->getBody(), true);
$paginatedResult = new LengthAwarePaginator(
$json, // the data to be paginated
count($json), // total count of the data
$perPage, // number of data shown per page
$page, // current page number
);
$view_data = [
'title' => 'Browse Culinary',
'data' => $paginatedResult,
];
return view('culinary.index', $view_data);
}
и я использую этот код в index.blade.php, чтобы показать часть нумерации страниц
{{ $data->withQueryString()->withPath('/culinary')->links() }}






Вам следует нарезать элементы, которые вы передаете на пагинатор. Из документации:
При создании экземпляра разбиения на страницы вручную вам следует вручную «нарезать» массив результатов, которые вы передаете на разбиение на страницы.
Итак, передайте это своему пагинатору:
$offset = ($page - 1) * $perPage;
$paginatedResult = new LengthAwarePaginator(
array_slice($json, $offset, $perPage), // paginated data
count($json), // total count of the data
$perPage, // number of data shown per page
$page, // current page number
);
если в вашем
$data13 элементов и вы считаете эти же данные общим количеством, вы, конечно, получите только одну страницу