小编Jor*_*rre的帖子

将数组传递给laravel中的中间件

我在一个名为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)

你可能不需要数组,因为我只在超级管理员中使用它,因为我只需要超级管理员,但是会有超级管理员和区域管理员的路由.

php authentication middleware laravel

2
推荐指数
1
解决办法
4328
查看次数

标签 统计

authentication ×1

laravel ×1

middleware ×1

php ×1