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



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

每次我只选择后者时,这里将身份验证作为中间件。

因此,我的管理员被踢出用户的登录页面。

如果没有中间件,我就面临着 LFM 的问题,因为管理员被要求在 LaRavel-FileManager 窗口中登录(允许用户浏览(。

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

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

不能访问构造函数中的 http 请求或会话信息。

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

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

最新更新