Wie ändert man Variablen in der .env-Datei dynamisch in Laravel?

8

Ich möchte eine Laravel-Webanwendung erstellen, mit der ein Administrator einige Variablen (z. B. Datenbankanmeldeinformationen) in der .env-Datei mithilfe des Web-Backend-Systems ändern kann. Aber wie speichere ich die Änderungen?

    
Joshua Leung 31.08.2015, 08:56
quelle

4 Antworten

16

Dafür gibt es keinen eingebauten Weg. Wenn Sie wirklich den Inhalt der .env -Datei ändern wollen, müssen Sie eine Art String-Ersetzung in Kombination mit den PHP-Methoden zum Schreiben von Dateien verwenden. Wenn Sie etwas Inspiration benötigen, sollten Sie sich den Befehl key:generate ansehen: KeyGenerateCommand.php :

%Vor%

Nachdem der Dateipfad erstellt und die Existenz überprüft wurde, ersetzt der Befehl einfach APP_KEY=[current app key] durch APP_KEY=[new app key] . Sie sollten in der Lage sein, denselben Zeichenfolgenaustausch mit anderen Variablen durchzuführen.
Last but not least wollte ich nur sagen, dass es nicht die beste Idee ist, Benutzern zu erlauben, die .env-Datei zu ändern. Für die meisten benutzerdefinierten Einstellungen würde ich empfehlen, sie in der Datenbank zu speichern. Dies ist jedoch offensichtlich ein Problem, wenn die Einstellung selbst für die Verbindung mit der Datenbank erforderlich ist.

    
lukasgeiter 31.08.2015, 09:27
quelle
1

Ich hatte das gleiche Problem und habe die Funktion unterhalb erstellt

%Vor%     
Erick 05.03.2017 22:35
quelle
1

Noch eine Implementierung, falls Sie etwas wie:

haben

A = B #dies ist ein gültiger Eintrag

In Ihrer .env-Datei

%Vor%     
Daniel Camargo 09.06.2017 02:47
quelle
1

Aktualisieren Sie Ericks Antwort unter Berücksichtigung der $old -Werte, die die Werte stech, bool und null abdecken.

%Vor%     
Phil 09.01.2018 14:07
quelle

Tags und Links