📘 Laravel Routing
Routing in Laravel allows you to define URLs and link them to specific functionality in your application. All routes are defined in the routes/
directory.
📁 Laravel Routes Directory
File | Purpose |
---|---|
web.php | Routes for web interfaces (uses session, CSRF protection). |
api.php | Routes for APIs (stateless). |
console.php | For Artisan command routes. |
channels.php | Used for event broadcasting channels. |
🧭 Basic Route Syntax
Route::get('/about', function () { return view('about'); });
- get – HTTP method
- /about – URL path
- function – Closure that handles the request
🚦 Route Methods
Route::get('/home', ...); Route::post('/submit', ...); Route::put('/update', ...); Route::delete('/delete', ...); Route::patch('/modify', ...); Route::options('/check', ...);
🎯 Route Parameters
Required Parameters
Route::get('/user/{id}', function ($id) { return "User ID: $id"; });
Optional Parameters
Route::get('/post/{id?}', function ($id = null) { return $id ? "Post ID: $id" : "No post ID provided"; });
With Regex Constraints
Route::get('/product/{id}', function ($id) { return "Product: $id"; })->where('id', '[0-9]+');
📁 Route to Controller
Route::get('/users', [UserController::class, 'index']);
Laravel 8+ syntax using use App\Http\Controllers\UserController;
🔒 Middleware in Routes
Route::get('/dashboard', [DashboardController::class, 'index']) ->middleware('auth');
🗂️ Route Groups
Route::prefix('admin')->middleware('auth')->group(function () { Route::get('/dashboard', ...); Route::get('/users', ...); });
🏷️ Named Routes
Route::get('/profile', [UserController::class, 'show'])->name('profile'); route('profile'); // Generates URL
📥 Route Redirect
Route::redirect('/old', '/new', 301);
🔁 Route View
Route::view('/welcome', 'welcome');
🌐 API Routes (Stateless)
In routes/api.php
, routes are automatically prefixed with /api
.
Route::get('/users', [UserController::class, 'index']);
🧪 Testing Routes
php artisan route:list
Displays all registered routes with methods, middleware, names, and URIs.
🧠 Summary Table
Concept | Syntax Example |
---|---|
Basic Route | Route::get('/home', function () {...}); |
Route with Parameter | Route::get('/user/{id}', fn($id) => ...); |
Route with Controller | Route::get('/posts', [PostController::class, 'index']); |
Named Route | ->name('route.name') |
Middleware | ->middleware('auth') |
Group Routes | Route::group([...], function () {...}); |
API Route | Defined in api.php, prefixed with /api |
0 Comments