Методы реализации пагинации с помощью поискового запроса в Laravel

Чтобы реализовать нумерацию страниц с помощью поискового запроса в Laravel, вы можете использовать несколько методов. Вот некоторые часто используемые подходы:

  1. Использование встроенных функций разбивки на страницы Laravel:
    Laravel предоставляет удобный способ разбивки результатов запроса на страницы с помощью метода paginate. Вы можете объединить это с функцией поиска, чтобы добиться нумерации страниц с помощью поискового запроса. Вот пример:
public function search(Request $request)
{
    $searchQuery = $request->input('query');

    $results = DB::table('your_table')
        ->where('column', 'like', '%' . $searchQuery . '%')
        ->paginate(10);
    return view('search_results', ['results' => $results]);
}
  1. Использование стороннего пакета.
    В Laravel есть различные сторонние пакеты, предлагающие расширенные функции нумерации страниц. Одним из популярных пакетов является «Laravel-Page-Speed» Ренато Мариньо. Вы можете установить его через Composer и использовать его функции для реализации разбиения на страницы поисковых запросов.

  2. Разбиение на страницы вручную.
    Если вы предпочитаете больше контроля над процессом разбивки на страницы, вы можете реализовать разбиение на страницы вручную. Это предполагает получение всех результатов поиска и ручное разделение их на страницы в зависимости от желаемого количества элементов на странице. Вот пример:

public function search(Request $request)
{
    $searchQuery = $request->input('query');

    $results = DB::table('your_table')
        ->where('column', 'like', '%' . $searchQuery . '%')
        ->get();
    $currentPage = $request->input('page', 1);
    $perPage = 10;
    $offset = ($currentPage - 1) * $perPage;
    $paginatedResults = array_slice($results, $offset, $perPage);
    $pagination = new LengthAwarePaginator(
        $paginatedResults,
        count($results),
        $perPage,
        $currentPage,
        ['path' => $request->url(), 'query' => $request->query()]
    );
    return view('search_results', ['results' => $pagination]);
}

Это всего лишь несколько способов реализации нумерации страниц с помощью поискового запроса в Laravel. Не забудьте настроить код в соответствии с потребностями вашего конкретного приложения.