Laravel 5 - env() 总是返回 null

新手上路,请多包涵

我试图找出为什么我的 env() 助手总是返回 null 。这会导致麻烦,尤其是在 app.php 文件中,默认情况下广泛使用的 env() 助手在哪里。也许任何神秘的服务器设置?

我的环境文件

 APP_ENV=production
APP_KEY=base64:mymagickey=
APP_DEBUG=false
APP_LOG_LEVEL=info
APP_URL=http://www.example.com

etc...

编辑 - 我试过以下

 php artisan cache:clear
php artisan view:clear
php artisan config:cache

当然,我正在使用 env 这样的助手: env('APP_ENV')

但仍然没有成功。奇怪的是, $_ENV php 变量包含来自 .env 文件的每个变量。

原文由 Fusion 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 543
2 个回答

env(...) 缓存配置后功能将不起作用。 (从 laravel 5.2 到当前 5.7)

Laravel 文档

如果您在部署期间使用 config:cache 命令,则必须确保仅从配置文件中调用 env 函数,而不是从应用程序中的任何其他位置调用。

所以正确的答案是

如果您从应用程序中调用 env,强烈建议您将正确的配置值添加到配置文件并从该位置调用 env,从而允许您将 env 调用转换为配置调用。

我从同一个 文档 中引用了它

但是为了快速解决这个问题:

php artisan config:clear

现在应该清楚为什么,当您尝试 config:cache 时,它没有帮助,即使它在缓存之前清除了配置。

原文由 Yevgeniy Afanasyev 发布,翻译遵循 CC BY-SA 4.0 许可协议

每当对 .env 或任何其他配置文件进行任何修改时,始终清除配置缓存

php artisan config:clear

原文由 muhsin_ap 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题