<?php namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; class CheckAdmin { public function handle(Request $request, Closure $next) { if (!$request->user() || !$request->user()->is_admin) { return redirect('/home'); } return $next($request); } }
The middleware checks if the user is logged in and has the 'is_admin' flag. If not, it redirects to '/home'. Otherwise, it allows the request to continue.
Middleware must be registered as a key pointing to the fully qualified class name with ::class. Option B follows this pattern.
<?php namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; class RedirectIfNotAuthenticated { public function handle(Request $request, Closure $next) { if (!$request->user()) { return redirect('/login'); } return $next($request); } }
The middleware redirects any unauthenticated user to '/login', including requests already targeting '/login'. This causes an infinite redirect loop.
<?php namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; class AddCustomHeader { public function handle(Request $request, Closure $next) { $request->headers->set('X-Custom', '12345'); return $next($request); } }
The middleware sets the 'X-Custom' header to '12345'. This header will be available in the next middleware or controller.
Middleware wraps the request handling process, allowing modification of both request and response. It can stop requests or modify responses.
