Dalam laravel, anda boleh menggunakan pernyataan "php artisan config:clear" untuk mengosongkan cache konfigurasi untuk menyelesaikan masalah yang env tidak dapat memperoleh data sebab masalah ini ialah fail konfigurasi cache membaca pembolehubah persekitaran melalui fungsi env, yang mungkin Ini akan menyebabkan pembolehubah persekitaran tidak dibaca, jadi null dikembalikan.
Persekitaran pengendalian artikel ini: sistem Windows 10, Laravel versi 5.4, komputer Dell G3.
Penyelesaian:
Kosongkan arahan cache konfigurasi
php artisan config:clear
Sebab
Dalam Laravel, jika anda melaksanakan perintah php aritisan config:cache, Laravel akan "menghimpun" semua fail konfigurasi dalam direktori app/config ke dalam fail konfigurasi cache dan menghantarnya ke bootstrap/ cache/config.php, setiap fail konfigurasi boleh membaca pembolehubah persekitaran melalui fungsi env, yang boleh dibaca di sini. Tetapi setelah anda mempunyai fail konfigurasi cache ini, anda tidak boleh membaca pembolehubah persekitaran menggunakan fungsi env di tempat lain, jadi null dikembalikan.
Mari kita lihat kod ini, Illuminate/Foundation/Bootstrap/DetectEnvironment baris php 18:
public function bootstrap(Application $app){ if(!$app->configurationIsCached()){ $this->checkForSpecificEnvironmentFile($app); try{ (newDotenv($app->environmentPath(),$app->environmentFile()))->load(); }catch(InvalidPathException$e){ } } }
Kaedah ini akan dijalankan selepas rangka kerja dimulakan. Kod ini menunjukkan bahawa jika fail konfigurasi cache wujud, pembolehubah persekitaran tidak akan ditetapkan dan konfigurasi akan membaca fail konfigurasi cache pembolehubah tidak akan dibaca lagi.
Oleh itu, apabila membaca fail konfigurasi di tempat lain dalam direktori app/config, jangan gunakan fungsi env untuk membaca pembolehubah persekitaran Dengan cara ini, sebaik sahaja anda melaksanakan php artisan config:cache, fungsi env tidak akan berfungsi . Semua pembolehubah persekitaran yang akan digunakan dibaca melalui env dalam fail konfigurasi dalam direktori app/config Jika pembolehubah persekitaran digunakan di tempat lain, fail konfigurasi dibaca secara seragam dan bukannya menggunakan fungsi env.
[Cadangan berkaitan: tutorial video laravel]
Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika env tidak dapat memperoleh data dalam laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!