多个中间件路由在 Laravel 5.6 中不起作用


Route::middleware(['auth', 'moderator'], ['auth', 'admin'])->group(function() {
Route::get('/dashboard', function() {
return view('dashboard');
});
});

我用过这个,但它对我不起作用。

我已经这样做了。

'admin' => AppHttpMiddlewareAdmin::class,
'moderator' => AppHttpMiddlewareModerator::class,

在内核中.php

在我的版主中间件中,

public function handle($request, Closure $next)
{
if($request->user()->role === 'moderator') {
return $next($request);
}
return redirect('/');
}

在我的管理中间件中,

public function handle($request, Closure $next)
{
if($request->user()->role === 'admin') {
return $next($request);
}
return redirect('/');
}

t 只检查第一个,如 ['auth', 'moderator'] 在这个。

无论我在路由中放入第一个,它只检查它,它不会检查第二个。我能做什么有什么解决方案吗?

试试这个。

`Route::middleware(['auth', 'moderator|admin'])->group(function() {
Route::get('/dashboard', function() {
return view('dashboard');
});
});`

愿它能;)