Route middleware is a way to filter HTTP requests entering your application. It runs code before or after a route is executed to check conditions like authentication or logging.
Click to reveal answer
beginner
How do you apply middleware to a route in Laravel?
You add middleware to a route using the middleware() method in the route definition, for example: Route::get('/dashboard', fn() => 'Dashboard')->middleware('auth');
Click to reveal answer
intermediate
What is the difference between global middleware and route middleware?
Global middleware runs on every HTTP request to your app. Route middleware runs only on specific routes you assign it to.
Click to reveal answer
intermediate
How do you create a custom route middleware in Laravel?
Use php artisan make:middleware MiddlewareName to create it. Then add your logic in the handle method and register it in app/Http/Kernel.php under $routeMiddleware.
Click to reveal answer
intermediate
What happens if a middleware returns a response before the route runs?
The middleware stops the request from reaching the route and sends the middleware's response back to the browser. This is useful for blocking unauthorized access.
Click to reveal answer
Which method is used to assign middleware to a Laravel route?
AapplyMiddleware()
BuseMiddleware()
Cmiddleware()
DsetMiddleware()
✗ Incorrect
The correct method to assign middleware to a route is middleware().
Where do you register custom route middleware in Laravel?
Aroutes/web.php
Bapp/Http/Kernel.php
Cconfig/app.php
Dapp/Providers/RouteServiceProvider.php
✗ Incorrect
Custom route middleware must be registered in the $routeMiddleware array inside app/Http/Kernel.php.
What is the main purpose of route middleware?
ATo filter and control access to routes
BTo define URL patterns
CTo create database migrations
DTo style HTML output
✗ Incorrect
Route middleware filters requests and controls access to routes.
If middleware returns a response early, what happens next?
AThe route still runs after middleware
BThe request is redirected to another route
CThe middleware is ignored
DThe route is skipped and middleware response is sent
✗ Incorrect
Middleware can stop the request and send its own response without running the route.
Which artisan command creates a new middleware class?
Aphp artisan make:middleware
Bphp artisan make:controller
Cphp artisan make:route
Dphp artisan make:service
✗ Incorrect
Use php artisan make:middleware to create a new middleware class.
Explain how route middleware works in Laravel and how you apply it to a route.
Think about how you protect pages like a dashboard.
You got /4 concepts.
Describe the steps to create and register a custom route middleware in Laravel.
Focus on creation, coding, registration, and usage.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of route middleware in Laravel?
easy
A. To run code before or after a route handles a request
B. To define database relationships
C. To create views for the application
D. To manage session storage
Solution
Step 1: Understand middleware role
Middleware runs code before or after a route processes a request to add extra logic.
Step 2: Compare with other options
Database relationships, views, and session storage are unrelated to middleware's main role.
Final Answer:
To run code before or after a route handles a request -> Option A
Quick Check:
Middleware = Pre/Post route code [OK]
Hint: Middleware runs code around route handling [OK]
Common Mistakes:
Confusing middleware with database or view logic
Thinking middleware manages sessions directly
Assuming middleware creates HTML views
2. Which of the following is the correct way to apply middleware named auth to a route in Laravel?
easy
A. Route::get('/dashboard', function () {})->middleware('auth');
B. Route::get('/dashboard', function () {}, 'auth');
C. Route::get('/dashboard', function () {})->useMiddleware('auth');
D. Route::get('/dashboard', function () {})->apply('auth');
Solution
Step 1: Recall middleware syntax for routes
Laravel uses ->middleware('name') to assign middleware to a route.
Step 2: Check syntax
Only Route::get('/dashboard', function () {})->middleware('auth'); uses the correct method. Others use non-existent methods like apply() and useMiddleware() or pass invalid extra arguments.
Final Answer:
Route::get('/dashboard', function () {})->middleware('auth'); -> Option A
Quick Check:
Correct middleware method = middleware() [OK]
Hint: Use ->middleware('name') after route definition [OK]
Common Mistakes:
Using non-existent methods like useMiddleware or apply
Placing middleware before route method incorrectly
Forgetting to pass middleware name as string
3. Given the route group below, what middleware will be applied to the /profile route?
Middleware array passed to middleware() applies all listed middleware to routes inside the group.
Step 2: Check the group middleware list
The group uses ['auth', 'verified'], so both middleware run on /profile route.
Final Answer:
Both 'auth' and 'verified' middleware -> Option D
Quick Check:
Group middleware = all listed middleware [OK]
Hint: Middleware array applies all listed middleware [OK]
Common Mistakes:
Assuming only first middleware applies
Thinking middleware arrays override each other
Ignoring middleware groups and only checking route
4. Identify the error in this middleware assignment:
Route::get('/settings', function () {
return 'Settings';
})->middleware(auth);
medium
A. Middleware cannot be applied to GET routes
B. Middleware must be registered in the controller
C. Middleware name should be a string
D. Middleware should be applied using ->useMiddleware()
Solution
Step 1: Check middleware argument type
Middleware names must be passed as strings, e.g., 'auth', not bare words.
Step 2: Verify other options
Middleware can be applied to GET routes; no need for controller registration here; useMiddleware() is invalid.
Final Answer:
Middleware name should be a string -> Option C
Quick Check:
Middleware name = string in quotes [OK]
Hint: Always quote middleware names as strings [OK]
Common Mistakes:
Passing middleware name without quotes
Thinking middleware only works on POST routes
Using non-existent middleware methods
5. You want to apply a middleware named checkAge only to routes under /admin but exclude it from /admin/login. Which is the best way to do this in Laravel?
hard
A. Apply checkAge middleware globally and remove it from /admin/login
B. Apply checkAge middleware to the group /admin and add except for /admin/login
C. Apply checkAge middleware only to /admin/login route
D. Apply checkAge middleware to all routes except /admin
Solution
Step 1: Understand middleware group usage
Applying middleware to a route group covers all routes inside it.
Step 2: Use 'except' to exclude specific routes
Laravel allows excluding routes from middleware using 'except' in middleware definition or group.
Step 3: Evaluate options
Apply checkAge middleware to the group /admin and add except for /admin/login correctly applies middleware to /admin group and excludes /admin/login. Others apply middleware incorrectly or globally.
Final Answer:
Apply checkAge middleware to the group /admin and add except for /admin/login -> Option B
Quick Check:
Group middleware + except route = correct approach [OK]
Hint: Use middleware group with except to exclude routes [OK]
Common Mistakes:
Applying middleware only to excluded route
Applying middleware globally without exclusions
Excluding entire /admin instead of just /admin/login
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.