Laravel不读取env变量

时间:2017-03-21 18:19:08

标签: laravel environment-variables artisan

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

3 个答案:

答案 0 :(得分:14)

解决方案很简单,但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不会加载新值,直到它被缓存。如果没有缓存,则无需执行此操作。

答案 1 :(得分:6)

运行命令

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

现在尝试阅读

$value = env('VARIABLE_NAME');

如果到现在为止不工作,

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

$value=getenv('VARIABLE_NAME');

答案 2 :(得分:0)

就我而言,只是因为我正在使用php artisan serve,只需重新启动它,服务器命令可能会读取env并保持在启动时。