<?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 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'));