2016-07-29 19 views
0

Ich möchte einige Einstellungen benutzerverwaltbar sein. Aus diesem Grund speichere ich sie in der Datenbank und lade sie anschließend ab. Jedoch, wenn ich versuche, Cache Fassade innerhalb der config/config.php Datei aufzurufen, erhalte ich einen Fehler. Details sind unten angegeben.Cache-Fassade funktioniert nicht in Laravel 5

ich folgenden Code haben in app/config/custom.php gelegen:

<?php 
// app/config/custom.php 

use Illuminate\Support\Facades\Cache; 

return [ 
    'foo' => Cache::get('foo'); 
]; 

, die einen folgenden Fehler ausspuckt:

Fatal error: Call to a member function get() on a non-object in D:\www\project\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php on line 216

Wie dieses Problem beheben?

+0

Haben Sie den Cache aktiviert? – ToyRobotic

+0

@ToyRobotic Ja, ich habe den Cache-Treiber auf 'Datei' gesetzt. Ich vermute, dass dieses Problem verursacht wird, weil ich versuche, Cache innerhalb Config-Datei zu verwenden, obwohl ich keine Ahnung habe, warum ist das sogar ein Problem –

+0

Fassaden waren im globalen Namespace, wenn ich nicht irre innerhalb von helpers.php können Sie die Verwendung ändern Anweisung zur Verwendung von Cache; – engvrdr

Antwort

1

Wie in den Kommentaren beschrieben, sind Konfigurationsdateien nicht dazu gedacht, dynamische Anwendungswerte zu speichern. Wenn sie dynamisch sind (d. H. Benutzerspezifische Werte), sollten Sie sie in verschiedenen Teilen der Anwendung behandeln.

Mithilfe von Dienstanbietern können Sie in Ihrer gesamten Anwendung global verfügbar machen.

+0

Danke für eine Antwort. Ich denke, es beantwortet, warum der obige Code nicht funktioniert. Ich habe eine andere Frage gestellt, die die Unmöglichkeit der Verwendung von Fassaden in den Konfigurationsdateien berücksichtigt. Bitte sehen Sie detailliertere Frage hier: http://stackoverflow.com/questions/38673236/is-it-a-good-idea-to-edit-env-dynamically-in-laravel-5 –

+0

Wie besprochen, meine Antwort hier ist nicht gedacht, um mehr Ansehen zu bekommen, es ist für den Nutzen der Gemeinschaft. Abgesehen davon beantwortet es Ihre Frage und warum Sie den Fehler erhalten und einige Empfehlungen, wie Sie den verschiedenen Anwendungsteilen einen Wert zur Verfügung stellen können. Die beste Möglichkeit zum Speichern der Einstellungen des Admin-Steuerfelds ist die DB, und Sie laden diese Werte aus einem Mailer-Modell, wenn Sie die Einstellungen für die Mail-Server-Einstellungen angegeben haben. –

+0

Ich würde lieber vermeiden, Einstellungen irgendwo anders als Config-Dateien zu laden, weil es unnötige Verwirrung in der Codebasis verursacht –

Verwandte Themen