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.
Die Betriebsumgebung dieses Artikels: Windows 10-System, Laravel Version 5.4, Dell G3-Computer.
Lösung:
Befehl zum Löschen des Konfigurationscache
php artisan config:clear
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){ } } }
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!