Laravel2 min čítania
Routing a Route Model Binding: čisté URL bez duplicitného kódu
Praktický routing, menovanie route a model binding cez id aj slug.
Routing je vstupná brána do aplikácie. Dobre navrhnuté route skracujú controller kód, znižujú bugy a dávajú API aj webu predikovateľný tvar.
Základné web route
use App\Http\Controllers\PostController;
Route::get('/posts', [PostController::class, 'index'])->name('posts.index');
Route::get('/posts/{post}', [PostController::class, 'show'])->name('posts.show');Konzistentné mená route ti pomôžu pri redirectoch aj testoch.
Route Model Binding
public function show(Post $post)
{
return view('posts.show', compact('post'));
}Laravel automaticky načíta model podľa {post} parametra.
Custom key (slug) binding
// App\Models\Post.php
public function getRouteKeyName(): string
{
return 'slug';
}Takto dostaneš SEO-friendly URL bez manuálneho where dotazu v controlleri.
API route vs web route
routes/web.php– sessions, CSRF, Blade,routes/api.php– stateless API, JSON odpovede.
Najčastejšie chyby
- kopírovanie
findOrFaildo každého controller action, - route bez názvov,
- zmiešané web/API endpointy v jednom súbore bez pravidiel.
Mini úloha
- Sprav CRUD route pre
Articleresource. - Zapni binding cez
slug. - Otestuj, že neexistujúci slug vracia 404.
Overenie v praxi
- Spusť
php artisan testa skontroluj, že zmena neotvorila regresiu. - Over kritický endpoint alebo flow priamo v prehliadači/HTTP klientovi.
- Ak riešiš DB vrstvu, skontroluj aj SQL správanie (N+1, indexy, transakcie) cez logy/profiler.
Čo bude ďalej
V ďalšom článku prejdeme controller architektúru, constructor DI a response typy.