2016-03-24 10 views
3

Ich benutze Laravel5.2, um eine E-Commerce-Plattform zu bauen und einige Probleme zu bekommen.Wenn ich Benutzerstatus anmelden und ich Session::forget('user') oder $request->session()->forget('user') verwenden, funktioniert es in der aktuellen Seite, und Ich umleiten auf die Login-Seite und dd(Session::all()) finde die Sitzung "Benutzer" noch existieren !!! Ich bin verwirrt, um zu wissen, was damit nicht stimmt. Bitte sag mir den Grund, vielen Dank.Laravel5.2 Session Verwendung vergessen() aber keine Arbeit

ps. logoutout code

+1

Bereits in Laravel hat nativen Abmeldesystem, warum diese verwenden? –

+0

versuche '' Session :: forget ('user') 'oder' session() -> forget ('user') ' – Qazi

+0

@Qazi zu verwenden Ja, ich benutze nur Session :: forget ('user') oder Session () -> vergessen ('Benutzer'), es funktioniert wirklich auf der aktuellen Seite, aber Umleitung auf die Anmeldeseite finden Sie die Sitzung Benutzer noch am Leben – Codebear

Antwort

0

Die Sitzung wird nicht gespeichert, bis die Antwort gesendet und Ereignisse/Middleware ausgelöst werden.

Try tun:

public function logout(Request $request) 
{ 
    if ($request->session()->has('user')) { 
     $is_forgotten = $request->session()->forget('user'); 
     if ($is_forgotten === null) 
      return Response::json(['result' => 1]); 
     return ''; 
    } 
    return Response::json(['result'=>0,'msg'=>'loginout error']); 
} 

Oder wenn Ihr die Helfer mit:

public function logout(Request $request) 
{ 
    if ($request->session()->has('user')) { 
     $is_forgotten = $request->session()->forget('user'); 
     if ($is_forgotten === null) 
      return response()->json(['result' => 1]); 
     return ''; 
    } 
    return response()->json(['result'=>0,'msg'=>'loginout error']); 
}