Laravel 不读取环境变量

Laravel does not read env variables

有人对 env 变量有疑问吗?出于某种原因,helper env('VARIABLE') returns null 每次我使用它。它发生得很意外,我真的不知道原因。重新启动 apache/IDE/computer 不起作用。

解决方案很简单,但 IDE 和调试器都没有说明。它只是 returns null。当您使用 php artisan config:cache 时,根据文档:

If you execute php artisan config:cachecommand during your deployment process, you should be sure that you are only calling the env() function from within your configuration files.

显然我在配置文件之外有 env 个变量,所以在缓存之后我不能再在外面使用它了。 php artisan config:clear 让它恢复工作。

我发现了更多关于 env 用法的信息,它应该 在配置文件中使用。您可以使用其他辅助方法 config() 从项目的其余部分访问 env 变量。请务必将其分配给配置文件中的另一个键,例如'key' => env('CACHE_DRIVER')

此外,每次更改.env 文件时,您都必须记住运行 php artisan config:cache。 Laravel 在缓存之前不会加载新值。如果没有缓存,则不需要。

运行指挥部

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

现在尝试阅读

$value = env('VARIABLE_NAME');

如果到现在还没工作,

尝试另一种语法来读取环境变量。

$value=getenv('VARIABLE_NAME');

在我的情况下,这只是因为我正在使用 php artisan serve,只需重新启动它,服务器命令可能会读取 env 并保持在启动时间。

请使用它对我有用,使用 git bash 或 cmd 并通过此命令

$ rm bootstrap/cache/config.php

此命令清除缓存文件夹

就运行

php artisan config:clear

它解决了我的问题。