Laravel 5 - env()函数总是返回null。
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
文件中的每个变量。
admin 更改状态以发布 2023年5月21日
从Laravel 5.2开始,在缓存配置后,env(...)
函数将无法工作。
Laravel文档指出:
如果您在部署期间使用
config:cache
命令,则必须确保您仅从配置文件内部调用env
函数,而不从应用程序的任何其他位置调用。
因此,正确的做法是:
如果您在应用程序中调用
env
的话,则强烈建议您添加适当的配置值到您的配置文件中,并从那个位置调用env,使您能够将env调用转换为config调用。
这段话也是从同一份文档中引用的。
对于一个快速的修复,可以这样做:
php artisan config:clear
但是,只要配置被缓存,它就会再次失败,这在生产环境中应始终如此。
现在应该清楚了,为什么当你尝试运行config:cache
时,它没有起作用,即使在缓存前清除了配置。