首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Laravel全局中间件中获取config/session的值

在Laravel全局中间件中获取config/session的值
EN

Stack Overflow用户
提问于 2020-06-21 13:48:56
回答 3查看 145关注 0票数 0

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

代码语言:javascript
复制
info(Config::get("database.connections.mysql.userdb","nil"));
info(Session::get("selected_database"));

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

EN

回答 3

Stack Overflow用户

发布于 2020-06-21 18:58:36

将StartSession从MiddlewareGroup移植到Kernal.php中的中间件解决了这个问题。但我不确定这是不是正确的方式。有谁能详细解释一下。这是Kernel.php

代码语言:javascript
复制
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,
];
票数 0
EN

Stack Overflow用户

发布于 2021-11-25 15:46:54

当我想在中间件中使用会话时,我也遇到了同样的问题。问题是我将我的中间件添加到内核的$middleware中。

但是最终我发现$middleware中的会话是不可访问的,你必须将你的中间件添加到$middlewareGroups中的“web”键中。

票数 0
EN

Stack Overflow用户

发布于 2020-06-21 13:55:30

您可以通过如下方式设置session :如果使用Session类,则从以下位置导入:

use Illuminate\Support\Facades\Session;

代码语言:javascript
复制
Session::put('key', 'value');

代码语言:javascript
复制
session(['key' => 'value']);

并通过如下方式获取会话:

代码语言:javascript
复制
$value = Session::get('key');

代码语言:javascript
复制
$value = session('key');

我希望对你有用

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62494882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档