Define routes with HTTP verbs, parameters, named routes, resource routing, and middleware groups.
Routing in Laravel
// routes/web.php
Route::get("/", fn() => view("welcome"));
Route::get("/about", [PageController::class, "about"]);
// Route parameters
Route::get("/users/{id}", [UserController::class, "show"]);
Route::get("/posts/{post:slug}", [PostController::class, "show"]); // route model binding
// HTTP methods
Route::post("/users", [UserController::class, "store"]);
Route::put("/users/{id}", [UserController::class, "update"]);
Route::delete("/users/{id}", [UserController::class, "destroy"]);
Route::patch("/users/{id}/activate", [UserController::class, "activate"]);
// Resource routes (all CRUD at once)
Route::resource("posts", PostController::class);
Route::apiResource("products", ProductController::class); // API (no create/edit)
// Route groups
Route::prefix("admin")->middleware(["auth", "admin"])->group(function () {
Route::resource("users", AdminUserController::class);
});
// Named routes
Route::get("/dashboard", fn() => view("dashboard"))->name("dashboard");
echo route("dashboard"); // generates URL