おさらい
- Laravel では環境変数の設定に
.env
を使う -
.env
の値にアクセスするにはenv('<config>.<key>')
とする- 例:
env('app.url')
- 例:
- 設定 5.7 Laravel
問題
- ある状況で
env('app.url')
でnull
が返ってくるようになった- とくになにもアプリケーションコードさわってない
原因
- 設定ファイルをキャッシュすると、
env()
関数がnull
を返すようになる-
php artisan config:cache
ね
-
Note: 開発過程の一環としてconfig:cacheコマンド実行を採用する場合は、必ずenv関数を設定ファイルの中だけで使用してください。設定ファイルがキャッシュされると、.envファイルはロードされなくなり、env関数の呼び出しは全てnullを返します。
設定 5.7 Laravel https://readouble.com/laravel/5.7/ja/configuration.html#configuration-caching
対策
- config ファイルで
env
関数を使う
config/app.php
<?php
return [
'name' => env('APP_NAME', 'Laravel'),
'env' => env('APP_ENV', 'production'),
'debug' => env('APP_DEBUG', false),
// ...
- そして
config()
関数でアクセスする