Разбить элементы на страницы, начиная с указанной c записи в Laravel - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь составить повестку дня, и мне нужно разбить страницы на страницы, начиная с сегодняшнего дня. Но мне нужно иметь возможность загружать и предыдущие события.

Пример событий

--------------------------------------------------
| id | title         | starts_at   | ends_at      |
--------------------------------------------------
| 1  | past event    | 2019-12-01  | 2019-12-02   |
--------------------------------------------------
| 2  | current event | 2020-02-01  | 2020-02-28   |
--------------------------------------------------
| 3  | future event  | 2022-04-02  | 2022-04-04   |
--------------------------------------------------

Я хочу получить текущие / будущие N событий как сегодняшнюю дату 2020-02-06 .
Как результат я хочу:

  • Результат разбивки на страницы с только current event и future event в коллекции.
  • Для нумерации нумерации previousPageUrl() должно быть установлено page=1 и только return past event

Сейчас я попробовал это, но оно выиграло не работает, поскольку нумерация страниц работает с самого начала записей. Мне нужна нумерация страниц, которая работает с «середины» записей

$perPage = 5;

$offset = Event::query()->where('ends_at', '<', today())->count();

$page = ceil($offset / $perPage);

Event::query()->orderBy('starts_at')->paginate($perPage, $columns = ['*'], $pageName = 'page', $page);
...