答案 0 :(得分:0)
您正在将一个中间件堆叠在另一个中间,因此请求会从一个中间件传递到另一个中间件,如果发生任何故障,请求将无法进一步处理。
您需要创建另一个中间件来检查用户是否属于任何给定角色。
php artisan make:middleware RestrictedAccess
并且在中间件的handle方法中你可以做到
public function handle($request, Closure $next)
{
$role_ids = [1, 2, 3, 4];
if (! in_array(auth()->user()->roleId, $role_ids)) {
abort('403');
}
return $next($request);
}
并将中间件添加到App\Http\Kernel.php
文件
protected $routeMiddleware = [
...
'auth.restricted_access' => \App\Http\Middleware\RestrictedAccess::class,
...
];
然后您可以将路线修改为
Route::post('facility', 'FacilityController@store')
->name('facility.store')
->middleware('auth.restricted_access');