Rumah  >  Artikel  >  rangka kerja php  >  Apakah yang perlu saya lakukan jika env tidak dapat memperoleh data dalam laravel?

Apakah yang perlu saya lakukan jika env tidak dapat memperoleh data dalam laravel?

WBOY
WBOYasal
2022-06-02 17:14:524135semak imbas

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.

Apakah yang perlu saya lakukan jika env tidak dapat memperoleh data dalam laravel?

Persekitaran pengendalian artikel ini: sistem Windows 10, Laravel versi 5.4, komputer Dell G3.

Apa yang perlu dilakukan jika env tidak dapat mendapatkan data dalam laravel

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn