2016-04-30 14 views
1

私はログインしてからセッションでユーザー名を保持してからこのページを更新しますが、セッションは値を保持しません。laravel 5.2コントローラでのセッションの使い方

これは私のコードです:

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')]);  
      } 
    } 

答えて

2

は、あなたのルートにミドルウェアグループ「ウェブ」を追加しました。 5.1では、これはすべてのルートのデフォルトだったと使用は、セッションを使用したい場合は

+0

私はミドルウェアを追加していないと思います。 – chipcoiga

+0

が動作する場合は、 – shalini

+0

最新バージョンのLaravel 5.2ではデフォルトでルーティングサービスプロバイダに 'web'ミドルウェアが含まれているので、次のような新しいバージョンのいずれかを実行している場合はこれを行う必要はありません。 5.2.30。 –

0

::あなたがして、セッションファサードを追加することを確認し、セッション管理やCSRFの検証などのために使用された:代わりの

use Session; 

これはセッションヘルパーを使用することができます。したがって、以下のコードを使用することができます:

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

詳しくはhelpersを参照してください。

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

1つのことを覚えておいてください。 Laravel 5.2でajaxを使用してフォームを投稿すると、CsrfTokenMismatchエラーが発生します。これを避けるには、配列以外の配列のApp/Http/Middleware/VerifyCsrfToken.phpにajaxでフォーム値を受け入れるルート名を追加します。そのルートは、ajaxリクエストでフォーム値を受け入れます。

+1

でもajaxリクエストでcsrfトークンを送ることができます@chipcoiga – BCPNAYAK

関連する問題