laravel – Не удается получить сеанс в конструкторе контроллера

В новом laravel я не могу получить сессию в конструкторе. Зачем?

public function __construct() { dd(Session::all()); //this is empty array } 

а затем ниже

 public function index() { dd(Session::all()); //here works } 

В старом laravel я помню, что не было этой проблемы. что-то изменилось?

Вы не можете сделать это по умолчанию с помощью Laravel 5.3. Но когда вы редактируете Kernel.php и меняете protected $middleware = []; к следующему, это будет работать.

 protected $middleware = [ \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, ]; protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, ], 'api' => [ 'throttle:60,1', 'bindings', ], ]; 

Надеюсь, это сработает!

В Laravel 5.3 связанные функции не будут работать в конструкторе контроллера , поэтому вы должны переместить всю связанную с сеансами логику методам.