Skip to content
Home Tutorials Roadmaps Courses
Log in Join free
Tutorials Laravel Routing
Laravel Advanced FREE

Routing

Lesson 2 of 17 Advanced Interactive

Laravel routing maps URLs to controller actions or closures. Routes are defined in routes/web.php for web routes and routes/api.php for API routes.

Route Methods

  • Route::get() � Handle GET requests
  • Route::post() � Handle POST requests
  • Route::put() � Handle PUT requests
  • Route::delete() � Handle DELETE requests

Route Parameters & Groups

Use curly braces for parameters: Route::get("/users/{id}", ...). Route groups apply middleware and prefixes.

Syntax

LARAVEL
// Basic routes
Route::get("/home", [HomeController::class, "index"]);
Route::post("/users", [UserController::class, "store"]);

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

// Named routes
Route::get("/dashboard", [DashboardController::class, "index"])->name("dashboard");

// Route groups
Route::prefix("admin")->middleware("auth")->group(function () {
    Route::get("/users", [AdminUserController::class, "index"]);
});
Laravel Routing
PHP
<?php
// routes/web.php
Route::get("/posts", [PostController::class, "index"]);
Route::get("/posts/{id}", [PostController::class, "show"])
    ->where("id", "[0-9]+");

Route::get("/search/{query?}", function ($query = null) {
    return "Searching for: " . $query;
})->where("query", "[A-Za-z]+");

Route::redirect("/home", "/", 301);

// Named routes
Route::get("/posts/{slug}", [PostController::class, "show"])
    ->name("posts.show");

// In blade: route("posts.show", ["slug" => "hello-world"])

Practice

1
Exercise

Create a route that accepts a name parameter and returns "Hello, [name]!".

Answer
Route::get("/greet/{name}", fn($name) => "Hello, $name!");
2
Exercise

Create a route group with prefix "api".

Answer
Route::prefix("api")->group(fn() => true);

Quick Quiz

1

Which file defines web routes in Laravel?

Web routes are defined in routes/web.php.

Interview Questions

GET retrieves data and appends params to the URL. POST sends data in the request body, suitable for sensitive or large data.