在登台和生产环境中,当我尝试从.env文件获取自定义定义的变量时,它返回null。我尝试为APP创建新的密钥并清除了各种缓存,但是结果是相同的。
APP_NAME="App - Staging"
APP_ENV=staging
APP_KEY=<HIDDEN_KEY>
APP_DEBUG=true
APP_LOG_LEVEL=none
APP_URL=https://staging.app.com
APP_BASE_URL="https://app-staging.app.com"
清除缓存
php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear
php artisan config:cache
但是在刀片视图中使用following时,什么也没有
env('APP_BASE_URL') returns null
答案 0 :(得分:5)
这是因为您已运行php artisan config:cache。如果您使用的是config:cache,则应仅在配置文件中进行env()调用。
参见此处:https://laravel.com/docs/5.6/configuration#configuration-caching
答案 1 :(得分:2)
这篇文章解决了我的问题,我在config / app.php中定义了自定义配置 https://laracasts.com/discuss/channels/laravel/accessing-custom-environment-variable
/*
|-------------------------------------------------------------------------
| Custom config variables
|-----------
|
*/
'base_url' => env('APP_BASE_URL', 'http://localhost'),
然后在.env中定义:
APP_BASE_URL="https://app-staging.app.com"
最后清除了缓存,可以正常工作。
在刀片视图中
{{ config('app.base_url') }}
答案 2 :(得分:2)
是的,它只会返回null
如果在部署过程中执行config:cache
命令,则应确保仅从配置文件中调用env函数。一旦配置被缓存,将不会加载.env文件,并且所有对env函数的调用都将返回null。
请参阅laravel文档https://laravel.com/docs/5.6/configuration#configuration-caching