laravel / lumen 访问中间件中的 .env 值

Posted

技术标签:

【中文标题】laravel / lumen 访问中间件中的 .env 值【英文标题】:laravel / lumen access .env values in middleware 【发布时间】:2016-08-03 11:49:03 【问题描述】:

有什么方法可以从中间件脚本内部访问 .env vals?

我曾尝试通过 env('KEY') 这样做,但这似乎大多数时候都返回 null。

有没有人知道在中间件内部执行此操作的更好方法或确保在中间件运行之前已加载 .env 文件的方法?

【问题讨论】:

我的运行良好。你如何在你的中间件中调用envenv文件设置正确了吗? 【参考方案1】:

您可以使用config() 访问.env 变量。例如,如果你想获取 mysql 端口,使用这个:

$mysqlPort = config()['database']['connections']['mysql']['port'];

要获取所有可用变量,您可以执行dd(config());

如果您想在.env 中使用自定义变量,您也可以这样做:

CUSTOM=hello

要获取此变量,请使用env() helper:

echo env('CUSTOM'); // Will output 'hello'

【讨论】:

感谢 Alexey,但这实际上不起作用。返回的内容不包含我的任何自定义变量。 您想将自定义变量放在.env 中,然后在您的应用代码中获取它吗?请查看更新的答案。 是的,这有效,但不适用于中间件。大约 90% 的时间它将在中间件内部为空形式。 是否有类似于 app()->environment() 的东西来拉取其他 .env 值? getenv('CUSTOM') 在中间件中工作吗?另外,也许在config direcotry 中创建自定义配置文件并使用它是一种选择?

以上是关于laravel / lumen 访问中间件中的 .env 值的主要内容,如果未能解决你的问题,请参考以下文章

获取经过身份验证的用户 Laravel/Lumen Passport

在 Lumen (Laravel) 中启用中间件

lumen 中间件详解

为速度而生的Laravel框架Lumen-路由与中间件

Laravel 5.2 API 与 Lumen 相比如何? [复制]

Lumen 中的中间件身份验证 [未找到“身份验证”类]