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?Wie ändert man Variablen in der .env-Datei dynamisch in Laravel?
Antwort
Es gibt keine eingebaute Möglichkeit, das zu tun. Wenn Sie wirklich den Inhalt der .env
Datei ändern wollen, müssen Sie eine Art von String ersetzen in Kombination mit PHP-Datei schreiben Methoden verwenden. Für einige Inspiration, sollten Sie einen Blick auf das key:generate
Kommando übernehmen: KeyGenerateCommand.php:
$path = base_path('.env');
if (file_exists($path)) {
file_put_contents($path, str_replace(
'APP_KEY='.$this->laravel['config']['app.key'], 'APP_KEY='.$key, file_get_contents($path)
));
}
Nach dem Dateipfad aufgebaut wird und die Existenz geprüft wird, ersetzt der Befehl einfach APP_KEY=[current app key]
mit 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, Benutzer die .env-Datei ändern zu lassen. 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.
Ich hatte das gleiche Problem und haben die Funktion unter
public static function changeEnvironmentVariable($key,$value)
{
$path = base_path('.env');
if(is_bool(env($key)))
{
$old = env($key)? 'true' : 'false';
}
if (file_exists($path)) {
file_put_contents($path, str_replace(
"$key=".$old, "$key=".$value, file_get_contents($path)
));
}
}
Noch eine weitere Implementierung, falls erstellt haben Sie so etwas wie:
A = B #Dies ist ein gültiger Eintrag
In Ihrer .env-Datei
public function updateEnv($data = array())
{
if (!count($data)) {
return;
}
$pattern = '/([^\=]*)\=[^\n]*/';
$envFile = base_path() . '/.env';
$lines = file($envFile);
$newLines = [];
foreach ($lines as $line) {
preg_match($pattern, $line, $matches);
if (!count($matches)) {
$newLines[] = $line;
continue;
}
if (!key_exists(trim($matches[1]), $data)) {
$newLines[] = $line;
continue;
}
$line = trim($matches[1]) . "={$data[trim($matches[1])]}\n";
$newLines[] = $line;
}
$newContent = implode('', $newLines);
file_put_contents($envFile, $newContent);
}
Aktualisieren Ericks Antwort mit Berücksichtigung von $old
Werte für Stich-, Bool- und Nullwerte.
public static function changeEnvironmentVariable($key,$value)
{
$path = base_path('.env');
if(is_bool(env($key)))
{
$old = env($key)? 'true' : 'false';
}
elseif(env($key)===null){
$old = 'null';
}
else{
$old = env($key);
}
if (file_exists($path)) {
file_put_contents($path, str_replace(
"$key=".$old, "$key=".$value, file_get_contents($path)
));
}
}
- 1. Wie man Modellabfrage in Steuerung in Laravel 5.2 dynamisch ändert?
- 2. Wie ändert man Text in Svg dynamisch?
- 3. Wie ändert man den Browsertitel dynamisch in der Joomla-Seite?
- 4. Wie ändert man Header dynamisch?
- 5. Extjs4 Wie man ein Modell dynamisch ändert?
- 6. Wie ändert man UICollectionview Zellenhöhe dynamisch?
- 7. Wie ändert man dynamisch die Elementausrichtung?
- 8. Wie ändert man die Strichfarbe dynamisch?
- 9. Wie ändert man die Bandhöhe dynamisch?
- 10. CodeIgniter: Wie man Controller Namen dynamisch ändert
- 11. Android - Wie ändert man Texte in den Einstellungen Aktivität dynamisch?
- 12. Wie ändert man die Schriftgröße in Auto Layout iOS dynamisch?
- 13. Wie ändert man die Klasse eines Objekts dynamisch in C#?
- 14. Wie ändert man dynamisch die Größe des Bildes in Sitecore?
- 15. Wie ändert man die Seitenansicht dynamisch in angular2?
- 16. wie man bootstrap-wysihtml5 dynamisch ändert
- 17. Wie ändert man die Farbe der horizontalen Linie dynamisch?
- 18. Wie ändert man den Bereich innerhalb der Formel dynamisch?
- 19. Wie ändert man den Objektnamen dynamisch in Javascript?
- 20. Wie ändert man Spaltentitel dynamisch in Kendo UI TreeList?
- 21. Wie ändert man die Kreisfarbe in Google Maps API dynamisch?
- 22. Wie man html player src dynamisch von der Titelliste ändert
- 23. Wie ändert man den Spaltennamen in SQL mit Laravel?
- 24. Wie ändert man die Position der horizontalen Linie dynamisch?
- 25. Wie ändert man globale Variablen innerhalb von Schließungen in swift?
- 26. Wie ändert man die UIImageView-Farbe in der TableView-Zelle in Swift dynamisch?
- 27. Wie ändert sich der Ansichtsordner in Laravel5?
- 28. Wie man eine Svg dynamisch in javafx entsprechend der Größe der Region ändert
- 29. wie man die Autorenvariable in PyCharm ändert
- 30. Wie man den Wert in der Kendo Combobox ändert/einstellt
$ alt könnte undefiniert sein – sgotre