Fus*_*ion 39 php environment-variables laravel phpdotenv
我试图找出为什么我的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...
Run Code Online (Sandbox Code Playgroud)
编辑 - 我试过以下:
php artisan cache:clear
php artisan view:clear
php artisan config:cache
Run Code Online (Sandbox Code Playgroud)
当然,我正在使用这样的env帮手:env('APP_ENV')
但仍然没有成功.奇怪的是,$_ENVphp变量包含.env文件中的每个变量.
Yev*_*yev 75
env(...)缓存配置后,函数将无法正常工作.(从laravel 5.2开始直到5.7)
如果
config:cache在部署期间使用该命令,则必须确保仅从env配置文件中调用该函数,而不是从应用程序中的任何其他位置调用该函数.
所以正确的答案是
如果从应用程序中调用env,强烈建议您在配置文件中添加正确的配置值,并从该位置调用env,允许您将env调用转换为config调用.
我从相同的文档中引用它
但是为了快速解决这个问题:
php artisan config:clear
现在应该清楚为什么,当你尝试config:cache它时没有帮助,即使它在缓存之前清除配置.
San*_*mar 23
以下命令对我有用。我不小心清除了所有缓存文件,所以env('something')返回null。
php artisan optimize:clear
Run Code Online (Sandbox Code Playgroud)
Igo*_*nov 17
只需在 Laravel 项目根目录运行此命令
rm bootstrap/cache/config.php
Run Code Online (Sandbox Code Playgroud)
Lea*_*ner 11
如果您的Laravel在.env或数据库文件夹中进行了某些修改后或由于其他任何修改而无法按预期工作,则这五个最重要的命令。这是完整的说明:https : //www.youtube.com/watch?v=Q1ynDMC8UGg
php artisan config:clear
php artisan cache:clear
php artisan view:clear
php artisan route:clear
composer dump-autoload
Run Code Online (Sandbox Code Playgroud)
小智 9
这是一个".env"已知错误,可以通过以下方式解决:
php artisan config:cache
Run Code Online (Sandbox Code Playgroud)
使用\Config::get('app.env');而不是env(APP_ENV);因为你最终会得到相同的错误,这对于一个真实的网站来说并不好.
如果您想从ENV添加自定义变量,请进入您的配置应用程序并找到:
/*
|--------------------------------------------------------------------------
| Application Environment
|--------------------------------------------------------------------------
|
| This value determines the "environment" your application is currently
| running in. This may determine how you prefer to configure various
| services your application utilizes. Set this in your ".env" file.
|
*/
'env' => env('APP_ENV', 'production'),
Run Code Online (Sandbox Code Playgroud)
在" 'env' => env('APP_ENV', 'production')," 下添加一个新行,例如,它可能是以下内容:
/*
|--------------------------------------------------------------------------
| Application Environment
|--------------------------------------------------------------------------
|
| This value determines the "environment" your application is currently
| running in. This may determine how you prefer to configure various
| services your application utilizes. Set this in your ".env" file.
|
*/
'env' => env('APP_ENV', 'production'),
'key' => env('APP_KEY'),
Run Code Online (Sandbox Code Playgroud)
您可以像这样调用"key"变量:
\Config::get('app.key');
Run Code Online (Sandbox Code Playgroud)
每当您向应用程序环境添加"key"等新变量时,您都需要使用config:cache重置缓存.
尝试以下命令后
php artisan config:clear
php artisan cache:clear
php artisan view:clear
php artisan route:clear
Run Code Online (Sandbox Code Playgroud)
如果你仍然得到 null ,env('APP_ENV')那么试试这个app()->environment()。希望这不会返回 null。这对我有用