Laravel不读取env变量

wuj*_*ujt 8 environment-variables laravel artisan

有人有env变量问题吗?出于某种原因,每次使用帮助器都会env('VARIABLE')返回帮助器null.它出乎意料地发生了,我真的不知道原因.重新启动apache/IDE /计算机不起作用.

wuj*_*ujt 15

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

如果执行php artisan config:cache过程中您的部署过程中的命令,你应该确保你只调用env()从函数的配置文件.

显然我env在配置文件之外有变量,所以在缓存之后我再也无法在外面使用它了.该php artisan config:clear放回去上班.

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

更重要的是,php artisan config:cache每次更改.env文件时都必须记住运行.Laravel不会加载新值,直到它被缓存.如果没有缓存,则无需执行此操作.

  • `config:cache`运行`config:clear` first btw :-) (2认同)

Maj*_*bib 7

运行命令

composer dump-autoload
php artisan cache:clear
php artisan config:clear
php artisan view:clear
Run Code Online (Sandbox Code Playgroud)

现在尝试阅读

$value = env('VARIABLE_NAME');
Run Code Online (Sandbox Code Playgroud)

如果到现在还不工作,

请尝试另一种语法来读取env变量。

$value=getenv('VARIABLE_NAME');
Run Code Online (Sandbox Code Playgroud)

  • 提示:一次性清除各种缓存。只需运行“php artisan optimize:clear” (3认同)

小智 6

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

$ rm bootstrap/cache/config.php
Run Code Online (Sandbox Code Playgroud)

此命令清除缓存文件夹


Ank*_*ood 5

赶紧跑

php artisan config:clear
Run Code Online (Sandbox Code Playgroud)

它解决了我的问题。