So erhalten Sie Konfigurationsdaten in Laravel in einem Unterordner

8

Ich habe das Laravel Administrator-Plugin und ich habe eine Administrator-Einstellungsseite eingerichtet, die sich in folgendem Verzeichnis befindet:

app / config / administrator / einstellungen / site.php

Die Anwendung kann die Daten speichern, aber wenn ich versuche, einige Daten in einem meiner Controller zu bekommen:

Config :: get ('administrator.settings.site')

Ich kann einen zurückgegebenen Wert erhalten ... Immer null oder Array 0.

Wie kann ich diese Konfigurationswerte erhalten?

    
Sergio Magoo Quintero 08.07.2013, 17:19
quelle

2 Antworten

35

Lösung:

Sie können anstelle von Punktnotation einen Dateipfad für Dateipfade verwenden:

%Vor%

Einige Erklärungen

Punktnotation wird verwendet, um Variablen innerhalb des Konfigurationsarrays innerhalb einer Datei zu erhalten, anstatt Dateipfade anzugeben.

Daher können Sie Config::get('administrator/settings/site.variable_name'); verwenden, um abhängig von Ihrer Umgebung $ variable_name von administrator/settings/site.php oder ENV_DIR_NAME/administrator/settings/site.php zu erhalten.

Verzeichnisse innerhalb von app/config werden als Umgebungen gelesen. Zum Beispiel funktioniert app/development/database.php mit Config::get('database.whatever') , wenn Sie sich in Ihrer "Entwicklungs" -Umgebung befinden, während app/production/database.php mit Config::get('database.whatever') gelesen wird, wenn Sie sich in der "production" -Umgebung befinden.

Laravel greift auf die Datei config/config/*.php zurück, wenn keine umgebungsspezifische Datei vorhanden ist.

Hinweis

Ich glaube, dass das Admin-Paket eine Konfigurationsdatei in app/config/packages/frozennode/administrator/administrator.php enthält, die das Paket gerne für Sie verwenden würde die Einstellungen. Das sollte verfügbar sein diese Konvention : Config::get('package::file.option');

    
fideloper 08.07.2013, 18:04
quelle
0

Ich stieß auf ein sehr ähnliches Problem, wenn ich dieses Laravel-Excel -Paket verwendete .

Die Lösung, die ich brauchte, war etwas anders als die obige Lösung. Ich musste Laravels Config Override Feature nutzen, um eine Konfigurationseinstellung für die normale Ausführung und eine andere für das Testen zu haben. Insbesondere wollte ich normalerweise, dass Excel-Dateien in storage/excel gespeichert werden, und ich wollte, dass sie beim Testen in storage/testing/excel eingefügt werden.

Die Technik der Verwendung eines durchgestrichenen Pfads funktionierte nicht, da sie auf eine bestimmte Datei verweist, so dass die verschiedenen Umgebungen nicht berücksichtigt wurden:

%Vor%

Die Lösung bestand darin, ein Paketpräfix zu verwenden, damit der Konfigurationslader die Umgebung respektiert:

%Vor%

Ich bin mir nicht sicher, woher der excel shorthand Name kommt, aber ich vermute, dass es etwas mit die Excel-Fassade im Paket, die sich als 'excel' ausgibt.

    
Matthew 09.09.2015 15:30
quelle

Tags und Links