Ich möchte eine Variable in der Sitzung mit Laravel auf diese Weise setzen
%Vor%Aber das Problem ist, dass ich nicht weiß, wo ich diesen Code einfügen soll, weil ich ihn einmal einstellen möchte (wenn der Gast die Homepage oder eine andere Seite besucht)? Der Grundgedanke ist, eine globale Variable zu verwenden, um es in allen Anwendungscontrollern zu verwenden, hörte ich etwas in Bezug auf Konfigurationsvariablen, aber ich bin mir nicht sicher, ob es eine gute Idee ist, Konfigurationsvariablen oder nur die Sitzung zu verwenden? Danke
Die richtige Syntax dafür ist ...
%Vor%Um die Variable zu erhalten, verwenden Sie ...
%Vor%Wenn Sie es einmal einstellen müssen, würde ich herausfinden, wann genau Sie es einstellen möchten und Ereignisse verwenden, um es zu tun. Zum Beispiel, wenn Sie es einrichten möchten, wenn sich jemand anmeldet, würden Sie ... verwenden
%Vor%Ich denke, Ihre Frage kann letztlich auf diesen Punkt reduziert werden:
Wo kann ich einen langlebigen Wert festlegen, auf den in meiner Anwendung global zugegriffen werden kann?
Die offensichtliche Antwort ist, dass es darauf ankommt. Worauf es ankommt, sind ein paar Faktoren:
Konfiguration
Wenn der Wert für alle gleich ist und sich selten ändert, ist der beste Platz, um es wahrscheinlich zu setzen, in einer Konfigurationsdatei irgendwo unter app/config
, z.B. app/config/companyname.php
:
Sie können auf diesen Wert von überall in Ihrer Anwendung über Config::get('companyname.somevalue')
Sitzung
Wenn der Wert, den Sie speichern möchten, anders für jeden Benutzer ist, ist der logischste Platz, um ihn zu platzieren, in Session
. Darauf beziehen Sie sich in Ihrer Frage, aber Sie verwenden falsche Syntax. Die richtige Syntax zum Speichern einer Variablen in Session lautet:
Die richtige Syntax, um es später wieder herauszuholen, ist:
%Vor%Bis zu wenn diese Operationen ausgeführt werden, liegt es an Ihnen. Ich würde wahrscheinlich einen Routenfilter wählen, wenn er auf Laravel 4.x oder Middleware wenn Sie Laravel 5 verwenden. Unten sehen Sie ein Beispiel für die Verwendung eines Routenfilters, der eine andere Klasse nutzt, um den Wert tatsächlich zu ermitteln:
%Vor%Tags und Links php session-variables laravel laravel-routing application-variables