Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

freemium's avatar

Adding new middleware in Inertia

i created new middleware for admin

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class AdminMiddleware
{

    public function handle(Request $request, Closure $next)
    {


        if (auth()->user()->usertypes) {
            foreach (auth()->user()->usertypes as $roles) {
                if ($roles->name == 'admin') {
                    return $next($request);
                } else {
                    return redirect(route('frontend.index'));
                }
            }
        } else {
            return redirect(route('frontend.index'));
        }
    }
}

and applied to route and it throws error like

Inertia\Middleware::checkVersion(): Argument #2 ($response) must be of type Symfony\Component\HttpFoundation\Response, null given, called in C:\xampp\htdocs\personal project\Ecommerce_Inertial\vendor\inertiajs\inertia-laravel\src\Middleware.php on line 83

how can we resolve this one

0 likes
1 reply
tykus's avatar
tykus
Best Answer
Level 104

How is that middleware supposed to work; you check only the first role from the user's usertypes and decide to either proceed to the next middleware, or redirect away???

if (auth()->user()->usertypes()->where('name', 'admin')->exists()) {
    return $next($request);
}
return redirect(route('frontend.index'));

Please or to participate in this conversation.