Laravel 5.6 env('APP_BASE_URL')返回null

时间:2018-06-27 11:39:23

标签: laravel environment-variables laravel-5.6

在登台和生产环境中,当我尝试从.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

3 个答案:

答案 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