Middleware: Filtering Requests Before Controllers
Understand how middleware works and how to create custom middleware for authentication, roles, and logging.
Middleware allows you to run logic before or after a request reaches your controller. Common use cases: - Check if user is logged in - Verify roles or permissions - Log requests - Add headers ## Built-in example ```php Route::get('/dashboard', function () { return view('dashboard'); })->middleware('auth'); ``` ## Create custom middleware ```bash php artisan make:middleware IsAdmin ``` ```php public function handle($request, Closure $next) { if (!auth()->user()?->is_admin) { abort(403); } return $next($request); } ``` ## Middleware flow ```mermaid flowchart LR A[Request] --> B[Middleware] B --> C[Controller] C --> D[Response] D --> B ``` Middleware keeps your controllers focused on business logic. In the next tutorial, we will decouple logic using events and listeners.