如何根据用户角色在laravel中设置中间件?

时间:2017-03-19 14:27:36

标签: laravel authentication middleware

我在construct()中设置中间件时遇到问题。

每次只选择后一个,这里将auth作为中间件。

由于这个原因,我的管理员被踢出了用户的登录页面。

没有中间件我面临lfm问题,因为管理员被要求在laravel-filemanager窗口登录(允许用户浏览)。

以下是我的代码: 公共函数__construct()     {

    $middleware = '';
    if(Session::get('user_role') == 'admin'){
           $middleware = 'auth:admin';
        } else {
           $middleware =  'auth';
        }
    $this->middleware($middleware);
}

1 个答案:

答案 0 :(得分:0)

您无法在构造函数中访问http请求或会话信息。

  

在以前版本的Laravel中,您可以在控制器的构造函数中访问会话变量或经过身份验证的用户。这从未打算成为框架的明确特征。在Laravel 5.3中,您无法访问控制器构造函数中的会话或经过身份验证的用户,因为中间件尚未运行。

来源:https://laravel.com/docs/5.3/upgrade(从5.2>控制器升级到5.3.0)