Získání trasy a parametrů dotazu z adresy URL v aplikaci Laravel

Jak získat parametr z adresy URL v systému Laravel V systému Laravel je získávání parametrů z adresy URL běžnou úlohou, zejména při práci s trasami, kontroléry a požadavky. Ať už...

Poptat web

07. 10. 2025

Získání trasy a parametrů dotazu z adresy URL v aplikaci Laravel

Jak získat parametr z adresy URL v systému Laravel

V systému Laravel je získávání parametrů z adresy URL běžnou úlohou, zejména při práci s trasami, kontroléry a požadavky. Ať už se jedná o parametr trasy (např, /users/{id}) nebo parametr dotazu (např, /users?id=5), Laravel poskytuje čisté a výrazné způsoby jejich načítání.

Získání parametrů trasy

Parametry trasy jsou definovány v routes/web.php or routes/api.php soubor. Například:

Route::get('/users/{id}', [UserController::class, 'show']);

Na této trase, {id} je dynamický parametr, který Laravel automaticky předává metodě kontroléru. Uvnitř UserController:

use Illuminate\Http\Request;
 
public function show(Request $request, $id)
{
// You can directly use the parameter
$user = User::findOrFail($id);
 
// You can also retrieve it from the request
$idFromRoute = $request->route('id');
 
return view('users.show', compact('user', 'idFromRoute'));
}

Pokud potřebujete pouze parametr a ne Request instance:

public function show($id)
{
$user = User::findOrFail($id);
return view('users.show', compact('user'));
}

Tip: Při kombinaci vstřikování závislostí (jako např. Request) a parametry trasy, vždy umístěte parametry trasy po injektované závislosti.

Parametry trasy můžete získat také pomocí globálního request() helper:

$id = request()->route('id');

Získání parametrů dotazu

Parametry dotazu se zobrazují za ? v adrese URL, například /users?status=active.

Laravel nabízí několik způsobů, jak je získat:

Použití instance Request:

use Illuminate\Http\Request;
 
public function index(Request $request)
{
// Get 'status' query parameter
$status = $request->query('status', 'active'); // default value if missing
 
$users = User::where('status', $status)->get();
 
return view('users.index', compact('users', 'status'));
}

Použití request() helper:

$status = request()->query('status');

Nebo zkrácená verze:

$status = request('status');

Získání všech parametrů dotazu jako asociativního pole:

$params = request()->query();

Poznámka: query() získává hodnoty pouze z řetězce dotazu (parametry GET), zatímco funkce get() může také hledat v datech POST. Použijte query() pro čistší záměr.

Získání parametrů v šablonách Blade

K parametrům můžete přistupovat také přímo v šablonách Blade.

Parametr trasy:

{{ request()->route('id') }}

Parametr dotazu:

{{ request('status') }}

Získávání parametrů v middlewaru

Pokud potřebujete načíst parametry před spuštěním řadiče, můžete to provést v middlewaru:

public function handle($request, Closure $next)
{
$id = $request->route('id');
$status = $request->query('status');
 
// Optionally modify the request
$request->merge(['source' => 'middleware']);
 
return $next($request);
}

Souhrn

Typ Příklad adresy URL Metoda Laravel
Parametr trasy /users/15 $request->route('id') or $id argument
Parametr dotazu /users?status=active $request->query('status') or request('status')

Laravel umožňuje jednoduché a konzistentní načítání parametrů tras i dotazů napříč kontroléry, middlewarem a pohledy. Dodržování těchto oficiálních vzorů zajistí, že váš kód bude čistý, předvídatelný a v souladu s osvědčenými postupy Laravel.

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