Laravel нумерация страниц следующая страница - PullRequest
0 голосов
/ 28 марта 2019

У меня есть API, который будет извлекать данные, разбитые на 10 пунктов.Вот моя логика:

public function getGamesResult(Request $request)
{
    // Validations
    $rules = [
        'from'=>'required|string',
        'to'=> 'required|string'
    ];

    $validator = Validator::make($request->all(), $rules);

    if ($validator->fails()) {

        // Validation failed
        return response()->json([
            'success' => false,
            'message' => $validator->messages(),
        ]);
    }

    $params =  $request->all();

    $games = Game::whereBetween("game_date", [$params["from"], $params["to"]])->paginate(10);
    $result = [];

    foreach ($games as $game) {

        $win_data = [];
        $winners = $game->result()->get();

        // Get Winning Number Records
        foreach ($winners as $win)
        {
            $winning_numbers_arr = explode(',', $win->winning_numbers);


            $win_data[] = [
                'game_id' => $win->game_id,
                'created_dt' => $win->created_dt
            ];

        }

        $result[] = [
            'game_data' => [
            'game_id' => $game->id,
            'game_date' => $game->game_date
        ],
            'winning_number' => $win_data
        ];
    }

    return response()->json([
        'success' => true,
        'data' => $result,
        'total'=> $games->total(),
        'count'=> $games->count(),
        'hasMorePages'=> $games->hasMorePages(),
        'currentPage'=> $games->currentPage()
    ]);
}

Мой вопрос в том, как Laravel узнает, когда я хочу получить следующие 10 записей?Или я делаю это неправильно?Если в общей сложности 3000 записей, как я получу следующую страницу, используя ту же логику?

1 Ответ

0 голосов
/ 28 марта 2019

Paginator Laravel содержит всю логику для автоматического получения следующей страницы запроса

https://laravel.com/docs/5.8/pagination#paginating-query-builder-results

Если вы добавите ?page=2 в конце вашего URL, он получит вторую страницу. Если аргумент не передан, предполагается, что страница 1.

...