在new laravel中,我无法在构造函数中获取会话.为什么?

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

and then below

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

In old laravel i remember there was not this problem. something changed?

推荐答案

You can't do it by default with Laravel 5.3. But when you edit you Kernel.php and change protected $middleware = []; to the following it wil work.

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相关问答推荐

Laravel中的策略对我不起作用,这是我的代码

Livewire 3分页在点击后不更新页面

V-icon 在 Vuetify 3 中不显示图标

Laravel Eloquent:组合列(或自定义属性)上的 Where 子句

laravel Eloquent 模型更新事件未触发

合并和排序两个 Eloquent 集合?

调用未定义的函数 mb_strimwidth

Laravel Nova - 重新排序左侧导航菜单项

Eloquent ORM,deleted_at 使用软删除时没有索引

如何使用中间件将标头添加到响应中?

在 Laravel 5 中找不到类App\Http\Controllers\Artisan

防止 Eloquent 查询上的模型水合

Laravel 迁移 - 删除列

调用未定义的方法 Illuminate\Routing\Route::get()

Laravel 存储链接不适用于生产

在 Laravel 中结合 AND/OR Eloquent的查询

复合唯一密钥验证 - laravel

将图像保存在公共文件夹中,而不是存储 laravel 5

Laravel 数据迁移

Laravel - Union + 分页?