Laravel - 访问 .env 变量

Posted

技术标签:

【中文标题】Laravel - 访问 .env 变量【英文标题】:Laravel - accessing .env variables 【发布时间】:2019-01-29 21:53:42 【问题描述】:

我试图从根目录中的 .env 获取环境变量

Route::get('/test', function () 
    return "value is". getenv('APP_ENV');
);

Route::get('/test', function () 
    return "it is". env('APP_ENV');
);

它在 .env 中

APP_NAME=Laravel
APP_ENV=local

我怎样才能访问它?

【问题讨论】:

【参考方案1】:
 App::environment()

请试试这个

【讨论】:

我试过 env('APP_ENV'), $_ENV('APP_ENV') 但结果为空。这个函数给了我结果。干杯:)【参考方案2】:

只需在 cmd 中运行此命令。

php 工匠配置:缓存

然后

php 工匠配置:清除

然后

php 工匠缓存:清除

【讨论】:

【参考方案3】:

使用env('ENVKEY') 不要忘记由于缓存而导致的某个时候清除缓存。

php artisan config:clear php artisan cache:clear composer dump-autoload

更多信息请查看doc

【讨论】:

应用缓存不会影响环境变量,只会影响配置缓存。 可能不是,但它不起作用。有很多情况,例如你可以检查这个***.com/questions/43040967/… 这很好,但唯一相关的是您的第一个命令。如果您认为其他两个命令与此问题相关,我建议您研究它们。 我确实认为这是相关的,因此我添加了。谢谢你的信息,虽然我会研究它 感谢这让我花了 1 小时才弄明白。 laravel 配置的新功能【参考方案4】:
Route::get('/test', function () 
    return "it is".config('app.name');
);

【讨论】:

【参考方案5】:

使用 Laravel,您应该避免配置文件之外的环境变量。

在你的配置文件中,你可以使用环境变量,例如在 config/app.php:

'env' => env('APP_ENV', 'production'),

然后您可以使用配置助手访问它:config('app.env')

这允许您缓存您的配置并仍然访问这些值,因为env('APP_ENV')在您的配置被缓存后不再工作

【讨论】:

你在哪里设置了'production',它也可以是'OTHER_ENV_VAR'吗? 我不明白你为什么不能嵌套 env 调用:env('APP_ENV', env('OTHER_ENV_VAR', 'ultimate_default'))【参考方案6】:

laravel 为这类任务提供了一个全局辅助函数

$val = config('app.something');

您也可以通过以下方法设置新值

config(['app.something' => 'cat']);

reference

对于您的特定任务,它会是

$val = config('app.env');

或全局确定环境

$environment = App::environment();

希望对你有帮助,祝你愉快!

【讨论】:

这是空的 Route::get('/test', function () return "Environment ".config('APP_ENV'); );我必须将它设置在其他地方吗? javascript(刀片文件)怎么样?【参考方案7】:

根据Environment Configuration 上的 Laravel 文档,

此文件中列出的所有变量都将加载到 $_ENV 当您的应用程序收到请求时,PHP 超级全局。您可以使用 env 帮助器从这些变量中检索值。

因此,可以将变量访问为

$_ENV['envKey'];

【讨论】:

以上是关于Laravel - 访问 .env 变量的主要内容,如果未能解决你的问题,请参考以下文章

在 Inertia.js Vue 文件中访问 Laravel 的 .env 变量

Laradock入门

在 Lumen 或 Laravel 5 中更改时区

如何获取 ENV 类型 Laravel + VueJS + Homestead

在 Docker 中为 AWS Elastic Beanstalk 构建期间访问 .env 变量

关于Lumen / Laravel .env 文件中的环境变量是如何生效的