Zachování nebo doplnění řetězců dotazů v aplikaci Stránkování Laravel

Průvodce stránkováním Laravel: Zachovat hodnoty řetězce dotazu Při vytváření aplikace Laravel, která zobrazuje data se stránkováním, často potřebujete zachovat určité parametry do...

Poptat web

14. 08. 2025

Zachování nebo doplnění řetězců dotazů v aplikaci Stránkování Laravel

Průvodce stránkováním Laravel: Zachovat hodnoty řetězce dotazu

Při vytváření aplikace Laravel, která zobrazuje data se stránkováním, často potřebujete zachovat určité parametry dotazu napříč stránkami. Můžete mít například filtry jako ?sort=price or ?category=books které by měly zůstat v odkazech stránkování při navigaci uživatele. Laravel to usnadňuje dvěma užitečnými metodami: withQueryString() a appends().

Zachování všech aktuálních hodnot řetězce dotazu

Pokud chcete všechny parametrů dotazu aktuálního požadavku, které mají být zachovány v odkazech stránkování, můžete použít příkaz withQueryString() metoda. To je užitečné zejména v případě, že máte více filtrů a chcete je všechny přenést, aniž byste je museli zadávat ručně.

use App\Models\User;
 
Route::get('/users', function () {
$users = User::paginate(15)->withQueryString();
 
return view('users.index', compact('users'));
});

Pokud je aktuální adresa URL:

/users?sort=name&role=admin

Vygenerované odkazy na stránkování budou vypadat takto:

/users?page=2&sort=name&role=admin

Laravel automaticky sloučí page parametr se všemi ostatními existujícími parametry.

Připojení specifických hodnot řetězce dotazu

Někdy nepotřebujete všechny parametry dotazu z požadavku, ale chcete přidat jen několik konkrétních. V takovém případě použijte příkaz appends() a předat pole dvojic klíč-hodnota.

use App\Models\User;
 
Route::get('/users', function () {
$users = User::paginate(15);
 
$users->appends(['sort' => 'votes']);
 
return view('users.index', compact('users'));
});

Nyní bude každý odkaz na stránkování obsahovat ?sort=votes spolu se správným page hodnotu:

/users?page=2&sort=votes

Kdy použít jednotlivé metody

  • withQueryString(): Použijte, když chcete všechny automaticky zachovány stávající parametry požadavku.
  • appends():Použijte, pokud chcete přidat nebo upravit pouze konkrétní parametry dotazu.

Obě metody pomáhají zachovat stav filtru a vyhledávání napříč stránkovanými výsledky, čímž zlepšují uživatelský komfort a zajišťují, že vybrané možnosti zůstanou při procházení stránek zachovány.

Původní článek publikoval Nabil Hassen.