首页 > 解决方案 > 在 Laravel 全局中间件中获取 config/session 的值

问题描述

我正在尝试从 Laravel-7 全局中间件中的 Config 或 Session 变量中检索值,但它不起作用。这些值在登录控制器中设置。我试过了

info(Config::get("database.connections.mysql.userdb","nil"));
info(Session::get("selected_database"));

有人可以帮助我如何从配置或会话或全局中间件中的任何其他全局变量中获取值。该值需要在登录时设置一次,并在每次请求时在全局中间件中使用。

标签: laravellaravel-middleware

解决方案


将 StartSession 从 MiddlewareGroup 移动到 Kernal.php 中的 Middleware 解决了这个问题。但我不确定这是否是正确的方法。谁能详细说明。这是内核.php

protected $middleware = [

    \Illuminate\Session\Middleware\StartSession::class,   //moved from middlewareGroups
    \App\Http\Middleware\SelectDB::class,

    \App\Http\Middleware\TrustProxies::class,
    \Fruitcake\Cors\HandleCors::class,
    \App\Http\Middleware\CheckForMaintenanceMode::class,
    \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
    \App\Http\Middleware\TrimStrings::class,
    \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];

推荐阅读