2017-04-06 76 views
1

我試圖找出爲什麼我的env()幫助器總是返回null。這造成了麻煩,尤其是在app.php文件中,其中env()助手默認廣泛使用。也許任何神祕的服務器設置?Laravel 5.3 - env()總是返回null

我的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 

和ofcourse,我使用env助手這樣的:env('APP_ENV')

但仍沒有成功。奇怪的部分是,$_ENV php變量包含來自.env文件的每一個變量。

+1

您是否試圖通過修補程序檢查值?你正在使用哪個版本的Laravel 5?我記得最新的一個是'5.4.17',所以你最新的版本是什麼 – zaherg

回答

0

看起來問題是在主機本身。當我將網站部署到不同的虛擬主機時,env()按預期返回值。

1

這是一個「.ENV」已知的bug,可以與解決:

php artisan config:cache 
+4

有些用戶可能需要做php工匠配置:清除而不是 – rebirth1078

+1

Laravel 5.5我必須運行'php artisan config:clear'。謝謝 – dacastro4

0

的可能,有時當你在.env文件或數據庫文件夾更新的東西(比如刪除的遷移,創建同名的一個,或與播種機相同),變化不會發生。

我有這些問題,下面的命令爲我工作。

嘗試: composer dump-autoload 也許有幫助。

2

使用\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'), 

添加「'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'), 

你可以這樣調用的 「鑰匙」 變量:

\Config::get('app.key'); 

無論何時您在應用程序環境中添加一個像「key」這樣的新變量,都需要使用config:cache來重置緩存。