/ / Laravel-Sitzungen bleiben nicht zwischen Anfragen - PHP, Laravel

Laravel-Sitzungen bleiben nicht zwischen Anfragen - PHP, Laravel

Ich habe zwei Methoden, setSession und chkSession.

public function setSession()
{
Session::put("one", $person["id"]);
Session::put("two", $person["firstName"]);
Session::put("three", $person["lastName"]);

return dd(Session::all());
}

public function chkSession()
{
dd(Session::all());
}

Wenn ich setSession auf /people/setsession, Ich sehe meine Sitzungsvariablen intakt, wenn ich die nächste Methode chkSession unter /people/chksessionIch sehe nur den Token-String und das leere Flash-Array.

Warum werden diese Variablen nicht zwischen Anforderungen aufbewahrt?

Antworten:

3 für die Antwort № 1

Versuchen Sie, den Treiber "Datei" anstelle des Treibers "Cookie" zu verwenden. Etwas zwischen Ihrer PHP-Konfiguration und Ihrem Browser (Cookie-Blocker usw.) kann die Sitzung beeinträchtigen.

Ich glaube, ich weiß vielleicht warum, ich hatte ein ähnliches Problemvor einiger Zeit: Sie rufen dd () auf, das die () aufruft, und an diesem Punkt hat Laravel die Sitzungsdaten noch nicht in den Speicher geschrieben. Dabei werden die Sitzungsdaten temporär im Speicher abgelegt. Erst wenn alles ausgeführt wurde, werden die Sitzungsdaten in den Speicher geschrieben (Datei, Cookie, Redis, was auch immer).

Dies bedeutet, dass beim Ausdrucken derSitzungsinhalt in setSession (), gibt Laravel die korrekten Werte aus, da sich diese noch im Speicher befinden, obwohl sie noch nicht in den Speicher geschrieben wurden. In chkSession () wurde jedoch der Speicher gelöscht und damit Laravel nicht mehr hat die Daten im Speicher.

Versuchen Sie, dd () loszuwerden und zu sehen, ob es funktioniert.