📘 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