我在一个名为rolMiddleware的中间件中得到了这个句柄:
public function handle($request, Closure $next, $roles)
{
//dd($request->user());
foreach ($roles as $rol) {
if ($request->user()->getTipoUsuario($request->user()->tipo_usuario_id)->getNombreTipoUsuario() == $rol) {
return $next($request);
}
}
abort(403, "¡No hay autorizacion!");
}
Run Code Online (Sandbox Code Playgroud)
但$ roles是一个数组,这是我使用中间件的路线:
Route::get('/mid', ['middleware' => 'roles:super admin', function () {
return "done";
}]);
Run Code Online (Sandbox Code Playgroud)
而给我的错误是:
ErrorException in RolMiddleware.php line 22:
Invalid argument supplied for foreach()
Run Code Online (Sandbox Code Playgroud)
你可能不需要数组,因为我只在超级管理员中使用它,因为我只需要超级管理员,但是会有超级管理员和区域管理员的路由.