Concept Flow - Why middleware filters requests
Incoming HTTP Request
Middleware Layer
Check Condition
Allow Request
Controller/Route
Middleware acts like a gatekeeper that checks or changes requests before they reach your app's main logic.
<?php
public function handle($request, Closure $next) {
if (!$request->user()) {
return redirect('login');
}
return $next($request);
}| Step | Action | Request State | Condition Checked | Result | Next Step |
|---|---|---|---|---|---|
| 1 | Receive HTTP request | Original request | N/A | Start middleware | Check user authentication |
| 2 | Check if user is logged in | Original request | $request->user() exists? | No user found | Redirect to login |
| 3 | Redirect to login | Original request | N/A | Response sent: redirect | End middleware |
| 4 | If user found | Original request | $request->user() exists? | User found | Pass request to next middleware or controller |
| 5 | Pass request forward | Original request | N/A | Request continues | Controller handles request |
| Variable | Start | After Step 2 | After Step 4 | Final |
|---|---|---|---|---|
| $request->user() | null or user object | null (no user) | user object (authenticated) | user object or null |
Middleware filters requests before they reach your app. It can check conditions like user login. If conditions fail, it can stop or redirect the request. If conditions pass, it lets the request continue. This helps protect routes and modify requests safely.