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 变量
如何获取 ENV 类型 Laravel + VueJS + Homestead