2016-04-30 6 views
1

Ich login und dann den Benutzernamen in einer Sitzung beibehalten, dann aktualisiere ich diese Seite, aber die Sitzung nicht Wert behalten.So verwenden Sie Sitzung in Laravel 5.2 Controller

Dies ist mein Code:

class WelcomeCtrl extends Controller 
{ 
    public function gotoWelcome() 
    { 
     return view('welcome')->with('user',Session::get('user'));//nothing in session 
    } 

     public function dologin(){ 
       $username = $_POST['username']; 
       $password = $_POST['password']; 
       $result = ""; 
       if($username && $password){ 
        $result = User::getUser($username, $password); 
        if($result){ 
         Session::set('user',$result); 
         return response()->json([true, Session::get('user')]);//I get value expected, this is ok. 
        } 
       } 
       return response()->json([false, Session::get('user')]);  
      } 
    } 

Antwort

2

Haben Sie die Middleware-Gruppe 'Web', um Ihre Routen hinzugefügt. In 5.1 war dies Standard für alle Strecken und wurde für die Sitzungsverwaltung und csrf Überprüfung verwendet usw.

+0

Oh, ich glaube, ich habe die Middleware nicht hinzugefügt. – chipcoiga

+0

Wenn es funktioniert, pls upvote – shalini

+0

Beachten Sie, dass neuere Versionen von Laravel 5.2 jetzt die 'web' Middleware standardmäßig im Routing-Service-Provider enthalten, also keine Notwendigkeit, dies zu tun, wenn Sie eine der neuen Versionen, wie 5.2.30. –

0

Wenn die Verwendung Session verwenden möchten :: stellen Sie sicher Sitzung Fassade durch hinzufügen:

use Session; 

statt Dies können Sie Session-Helper verwenden. So können Sie unter Codes verwenden:

session()->user()->email; 
session()->get('user'); 
session()->flash('message', 'Hi there.'); 

Weitere helpers sehen.

0
Session::put('key','value');//to put the session value 
Session::get('key');//to get the session value 

Session::has('key');//to check the session variable exist or not 
0

Denken Sie an eine Sache. Wenn Sie ein Formular mit Ajax in Laravel 5.2 veröffentlichen, wird ein CsrfTokenMismatch-Fehler auftreten. Um dies zu vermeiden, fügen Sie Ihren Routennamen, der Formularwerte akzeptiert, mit ajax in Ihrer App/Http/Middleware/VerifyCsrfToken.php im Array $ except hinzu. Dann akzeptiert diese Route Formularwerte mit einer Jax-Anforderung.

+1

Sie können auch csrf Token durch Ajax Anfrage @ Chipcoiga senden – BCPNAYAK

Verwandte Themen