Bird
Raised Fist0
Laravelframework~10 mins

Route middleware in Laravel - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to apply the 'auth' middleware to the route.

Laravel
Route::get('/dashboard', function () {
    return view('dashboard');
})->[1]('auth');
Drag options to blanks, or click blank then click option'
Aname
Bprefix
Cgroup
Dmiddleware
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'prefix' instead of 'middleware'.
Trying to use 'group' on a single route.
2fill in blank
medium

Complete the code to apply multiple middleware 'auth' and 'verified' to the route.

Laravel
Route::post('/profile', function () {
    // Update profile
})->middleware([[1]]);
Drag options to blanks, or click blank then click option'
A'auth', 'verified'
B'auth|verified'
C'auth', 'guest'
D'verified', 'guest'
Attempts:
3 left
💡 Hint
Common Mistakes
Using a single string with pipe '|' instead of an array.
Including middleware that don't apply here.
3fill in blank
hard

Fix the error in the middleware group definition to apply 'auth' and 'admin' middleware.

Laravel
Route::middleware([1])->group(function () {
    Route::get('/admin', function () {
        // Admin dashboard
    });
});
Drag options to blanks, or click blank then click option'
A'auth|admin'
B'auth, admin'
C['auth', 'admin']
Dauth, admin
Attempts:
3 left
💡 Hint
Common Mistakes
Passing a single string with commas or pipes instead of an array.
Not quoting middleware names.
4fill in blank
hard

Fill both blanks to define a route group with 'auth' middleware and prefix 'admin'.

Laravel
Route::[1](['middleware' => '[2]', 'prefix' => 'admin'], function () {
    Route::get('/dashboard', function () {
        // Admin dashboard
    });
});
Drag options to blanks, or click blank then click option'
Agroup
Bmiddleware
Cauth
Dprefix
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'middleware' method instead of 'group' for grouping.
Using 'prefix' as middleware name.
5fill in blank
hard

Fill all three blanks to create a route with 'auth' middleware, named 'profile.show', and URL '/profile'.

Laravel
Route::get('[1]', function () {
    // Show profile
})->middleware('[2]')->name('[3]');
Drag options to blanks, or click blank then click option'
A/profile
Bauth
Cprofile.show
D/dashboard
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong URL or middleware name.
Confusing route name with URL.

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

  1. Step 1: Understand middleware role

    Middleware runs code before or after a route processes a request to add extra logic.
  2. Step 2: Compare with other options

    Database relationships, views, and session storage are unrelated to middleware's main role.
  3. Final Answer:

    To run code before or after a route handles a request -> Option A
  4. 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

  1. Step 1: Recall middleware syntax for routes

    Laravel uses ->middleware('name') to assign middleware to a route.
  2. 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.
  3. Final Answer:

    Route::get('/dashboard', function () {})->middleware('auth'); -> Option A
  4. 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?
Route::middleware(['auth', 'verified'])->group(function () {
    Route::get('/profile', function () {
        return 'User Profile';
    });
});
medium
A. No middleware applied
B. Only 'verified' middleware
C. Only 'auth' middleware
D. Both 'auth' and 'verified' middleware

Solution

  1. Step 1: Understand middleware groups

    Middleware array passed to middleware() applies all listed middleware to routes inside the group.
  2. Step 2: Check the group middleware list

    The group uses ['auth', 'verified'], so both middleware run on /profile route.
  3. Final Answer:

    Both 'auth' and 'verified' middleware -> Option D
  4. 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

  1. Step 1: Check middleware argument type

    Middleware names must be passed as strings, e.g., 'auth', not bare words.
  2. Step 2: Verify other options

    Middleware can be applied to GET routes; no need for controller registration here; useMiddleware() is invalid.
  3. Final Answer:

    Middleware name should be a string -> Option C
  4. 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

  1. Step 1: Understand middleware group usage

    Applying middleware to a route group covers all routes inside it.
  2. Step 2: Use 'except' to exclude specific routes

    Laravel allows excluding routes from middleware using 'except' in middleware definition or group.
  3. 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.
  4. Final Answer:

    Apply checkAge middleware to the group /admin and add except for /admin/login -> Option B
  5. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard