【发布时间】:2017-08-13 14:19:13
【问题描述】:
有人对env 变量有疑问吗?出于某种原因,每次我使用助手env('VARIABLE') 时都会返回null。它发生得非常意外,我真的不知道原因。重启apache/IDE/电脑不起作用。
【问题讨论】:
标签: laravel environment-variables laravel-artisan
有人对env 变量有疑问吗?出于某种原因,每次我使用助手env('VARIABLE') 时都会返回null。它发生得非常意外,我真的不知道原因。重启apache/IDE/电脑不起作用。
【问题讨论】:
标签: laravel environment-variables laravel-artisan
运行那些命令
composer dump-autoload
php artisan cache:clear
php artisan config:clear
php artisan view:clear
现在尝试阅读
$value = env('VARIABLE_NAME');
如果到现在还没有工作,
尝试另一种语法来读取环境变量。
$value=getenv('VARIABLE_NAME');
【讨论】:
解决方案很简单,但 IDE 和调试器都没有说明。它只返回null。当你使用php artisan config:cache时,根据文档:
如果您在部署过程中执行
php artisan config:cachecommand,您应该确保您只是在在您的配置文件中调用env()函数。
显然我在配置文件之外有env 变量,所以在缓存之后我不能再在外面使用它了。 php artisan config:clear 让它恢复工作。
我发现更多关于env 用法的信息,它应该仅在配置文件中使用。您可以使用其他辅助方法config() 从项目的其余部分访问env 变量。确保将其分配给配置文件中的另一个键,例如'key' => env('CACHE_DRIVER')
更重要的是,每次更改.env 文件时,您必须记住运行php artisan config:cache。 Laravel 不会加载新值,直到它被缓存。如果没有缓存,则无需缓存。
【讨论】:
请使用它对我的工作使用 git bash 或 cmd 并通过此命令
$ rm bootstrap/cache/config.php
此命令清除缓存文件夹
【讨论】:
就我而言,只是因为我正在使用php artisan serve,只需重新启动它,服务器命令可能会读取env并在启动时保留。
【讨论】:
快跑
php artisan config:clear
它解决了我的问题。
【讨论】: