Routing in Laravel
Routes are defined in routes/web.php for web routes and routes/api.php for API routes.
use Illuminate\Support\Facades\Route;
Route::get("/", function () {
return view("welcome");
});
Route::get("/users/{id}", function (string $id) {
return "User ".$id;
})->name("users.show");Route Parameters
// Required parameters
Route::get("/posts/{post}", [PostController::class, "show"]);
// Optional parameters
Route::get("/search/{query?}", function (?string $query = null) {
return "Searching: ".($query ?? "all");
});
// Regular expression constraints
Route::get("/users/{id}", function (string $id) {
//
})->where("id", "[0-9]+");Named Routes
Route::get("/profile", [ProfileController::class, "show"])->name("profile");
// Generate URLs
$url = route("profile");
$url = route("users.show", ["id" => 5]);Route Groups
Route::middleware(["auth"])->prefix("admin")->group(function () {
Route::get("/dashboard", [AdminController::class, "dashboard"]);
Route::resource("users", UserController::class);
});Laravel 13: Route Caching
Laravel 13 supports php artisan route:cache with improved serialization and Folio integration. Use php artisan route:list to inspect all registered routes.