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?
Sie können anstelle von Punktnotation einen Dateipfad für Dateipfade verwenden:
%Vor%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.
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');
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.