Как получить страницу 2 из постраничных записей - PullRequest
0 голосов
/ 13 июня 2019

в проект Laravel Lumen API, я хочу получить страницу 2 постраничных записей.Но это не дает мне никакого результата.

$query = DB::table('cars');
$query->paginate(2, ['*'], 'page', 2);
$data = $query->get();

Как я могу это понять?

Спасибо за помощь.

Ответы [ 3 ]

4 голосов
/ 13 июня 2019

Чтобы разбить записи на страницы в Lumen / Laravel, просто используйте функцию paginate(). Он принимает номер страницы в качестве параметров запроса, вам не нужно явно определять это.

Также вам не нужно добавлять ->get() с paginate().

// Для второй страницы URL будет иметь вид:

http://example.com/something?page=2 

// Код Paginator будет выглядеть как

$data = DB::table('cars')->paginate(2);

Здесь параметр (2) представляет ограничение - количество записей для отображения.

1 голос
/ 13 июня 2019

Нумерация страниц в люмене должна работать так же, как Laravel.

Согласно документам https://laravel.com/docs/5.8/pagination#basic-usage

Чтобы получить любой номер страницы с разбивкой по страницам, установите параметр строки запроса send? Page для страницы, которую вы хотите получить.

1 голос
/ 13 июня 2019

как вы можете ваш код

Добавление таблицы в экземпляр Builder

$query = DB::table('cars'); Выглядит отлично

Разметка строителя

$query->paginate(2, ['*'], 'page', 2); Выглядит отлично

Но Вы можете Вы не изменяете с помощью метода prevoius, поэтомунумерация страниц будет применена, но вы не сможете получить к ней доступ, поэтому

$paginated = $query->paginate(2, ['*'], 'page', 2); будет работать нормально

EDITED

As YouНе сказал никаких изменений в записи, потому что вы жестко закодировали номер страницы

Так

$paginated = $query->paginate(2, ['*'], 'page'); будет отлично работать

ПОСЛЕ УДАЛЕНИЯ ПОСЛЕДНЕГО Аргумента 2 из функции

Теперь $ paginated предоставит экземпляр LengthAwarePaginatorInstance

Так что вам нужно передать $paginated в Json

Надеюсь, это ясно

...