Heim > PHP-Framework > Laravel > Was soll ich tun, wenn env keine Daten in Laravel abrufen kann?

Was soll ich tun, wenn env keine Daten in Laravel abrufen kann?

WBOY
Freigeben: 2022-06-02 17:14:52
Original
4182 Leute haben es durchsucht

In Laravel können Sie die Anweisung „php artisan config:clear“ verwenden, um den Konfigurationscache zu löschen und das Problem zu lösen, dass env keine Daten abrufen kann. Der Grund für dieses Problem liegt darin, dass die Cache-Konfigurationsdatei die Umgebungsvariablen über env liest Funktion, die zum Lesen führen kann. Die Umgebungsvariable kann nicht abgerufen werden, daher wird null zurückgegeben.

Was soll ich tun, wenn env keine Daten in Laravel abrufen kann?

Die Betriebsumgebung dieses Artikels: Windows 10-System, Laravel Version 5.4, Dell G3-Computer.

Was tun, wenn die Umgebung in Laravel keine Daten abrufen kann?

Lösung:

Befehl zum Löschen des Konfigurationscache

php artisan config:clear
Nach dem Login kopieren

Ursache

Wenn Sie in Laravel den Befehl php aritisan config:cache ausführen, wird Laravel Folgendes tun: Die App Alle Konfigurationsdateien im Verzeichnis /config werden „kompiliert“ und in eine Cache-Konfigurationsdatei in bootstrap/cache/config.php integriert. Jede Konfigurationsdatei kann Umgebungsvariablen über die env-Funktion lesen, die hier gelesen werden kann. Aber sobald Sie diese Cache-Konfigurationsdatei haben, können Sie die Umgebungsvariablen nicht mehr mit der env-Funktion anderswo lesen, daher wird null zurückgegeben.

Werfen wir einen Blick auf diesen Code, Illuminate/Foundation/Bootstrap/DetectEnvironment.php, Zeile 18:

public function bootstrap(Application $app){
        if(!$app->configurationIsCached()){
            $this->checkForSpecificEnvironmentFile($app);
            try{
                (newDotenv($app->environmentPath(),$app->environmentFile()))->load();
            }catch(InvalidPathException$e){
            }
        }
    }
Nach dem Login kopieren

Diese Methode wird nach dem Start des Frameworks ausgeführt. Dieser Code zeigt, dass Umgebungsvariablen nicht festgelegt werden, wenn eine Cache-Konfigurationsdatei vorhanden ist und die Umgebungsvariablen nicht gelesen werden.

Verwenden Sie daher beim Lesen von Konfigurationsdateien an anderer Stelle im Verzeichnis app/config nicht die Funktion env zum Lesen von Umgebungsvariablen. Auf diese Weise funktioniert die Funktion env nicht, sobald Sie php artisan config:cache ausführen. Alle zu verwendenden Umgebungsvariablen werden über env in der Konfigurationsdatei im Verzeichnis app/config gelesen. Wenn Umgebungsvariablen an anderer Stelle verwendet werden, wird die Konfigurationsdatei einheitlich gelesen, anstatt die Funktion env zu verwenden.

【Verwandte Empfehlung: Laravel-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn env keine Daten in Laravel abrufen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage