解释如何在构造函数中使用 Session Laravel 5.3

Explain how to use Session In The Constructor Laravel 5.3

根据 laravel 文档 https://laravel.com/docs/5.3/upgrade#5.3-session-in-constructors 我无法再访问构造中的会话,因为中间件尚未加载,他们提供了一个我无法理解的示例

public function __construct()
{
    $this->middleware(function ($request, $next) {
        $this->projects = Auth::user()->projects;

        return $next($request);
    });
}

如何在该函数内访问我的会话? , 一个解释就可以

将其放入将处理请求的控制器的 __construct() 函数中。

Laravel 文档声明您不能再在构造函数中访问中间件,因为它尚未加载。

通过使用特定的闭包,您实际上是在强制 php(和 Laravel)加载闭包中的任何逻辑作为中间件。看看Laravel提供的basic controller class,看看能不能把点联系起来。

本质上,您是在破解框架。

话虽如此,这确实是一种糟糕的做法,您不应该在控制器的构造函数中调整会话。

 public function __constrcut(){
    //changing language accordding to session
    $this->middleware(function($request,$next){
        app::setLocale(Session::get('locale'));
        return $next($request);
    });

此代码用于根据会话更改语言我使用的版本laravel 5.5注意:您必须先调用中间件然后使用会话作为构造函数看不到会话这对我有用