РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pplrSpPgWq 62 of 210 menu

Сохранение GET-параметров при пагинации в Laravel

Часто список не просто листают, а ещё и фильтруют: поиск по названию, сортировка, категория. В URL тогда несколько параметров, например:

/posts?search=php&page=2.

Обычные ссылки пагинации меняют только page. Параметр search при переходе на другую страницу может пропасть - и фильтр сбросится. Чтобы этого не было, к пагинатору вызывают withQueryString:

<?php namespace App\Http\Controllers; use App\Models\Post; use Illuminate\Http\Request; class PostController extends Controller { public function index(Request $request) { $query = Post::query(); if ($request->filled('search')) { $query->where( 'title', 'like', '%' . $request->search . '%' ); } $posts = $query->paginate(10) ->withQueryString(); return view('posts.index', [ 'posts' => $posts, ]); } } ?>

Теперь в ссылках links() останутся и search, и page. Пользователь листает результаты поиска, а не весь список заново.

Сделайте список с поиском по GET-параметру search и пагинацией через withQueryString.

Откройте вторую страницу с поиском и проверьте, что параметр search остаётся в ссылках.

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить