2016-04-29 11 views
0

4.2からLaravel 5.2にアップグレードして、フレームワークの新機能を試しました。しかし、私はflash sessionデータを他のコントローラ/ルートに送るように設定することに問題があります。 page_bLaravel 5.2 Flashデータでリダイレクト

コントローラ

<?php namespace App\Http\Controllers; 

use Session; 
use Illuminate\Http\Request; 

class ctest extends Controller { 

    public function page_a() { 
     return redirect('page_b')->with('verified', 'Go to page B'); 
    } 

    public function page_b(Request $request) { 
     dd(array(
      session()->has('verified'),    // Option a 
      $request->session()->get('verified') // Option b 
     )); 
    } 
} 

ルート

// Old code 
// Route::get('/page_a', '[email protected]_a'); 
// Route::get('/page_b', '[email protected]_b'); 

// As pointed out by @rishal at the comment, 
// I tried using this group but I can't still get 
// the flash data. 
Route::group(['middleware' => ['web']], function() { 
    Route::get('/page_a', '[email protected]_a'); 
    Route::get('/page_b', '[email protected]_b'); 
}); 

結果:ここで

は私の簡単なコードです

array: [ 
    0 => false 
    1 => null 
] 

私は何が間違っているか把握することはできません。 page_bにリダイレクトされるたびに、セッションには_tokenしか含まれず、すでにpage_aに設定されているverifiedのフラッシュセッションデータは含まれません。

PS:店舗セッションにデータベースを使用してI'amはあなたが

Route::group(['middleware' => ['web']], function() { 
    Route::get('/page_a', '[email protected]_a'); 
    Route::get('/page_b', '[email protected]_b'); 
}); 

次に、使用要求を取得するためにページをリダイレクトした後、セッション変数を取得するためにグループにあなたのルートを必要とする

+0

あなたのルートをグループ化しようとしました Route :: group – rishal

+0

まだありません。私はそれをする必要がありますか?どうして? :D申し訳ありません。私は新しい、5.2 – Vainglory07

+0

を見てこれを見て http://stackoverflow.com/questions/34703696/session-variable-doesnt-persist-during-redirect-in-laravel?rq=1 – rishal

答えて

1

まずファイルではありませんあなたのpage_aこのラインでセッション

public function page_b(Request $request) { 
    if ($request->session()->has('verified')) 
     echo $request->session()->get('key'); 
} 

return redirect('page_b')->with('verified', 'Go to page B'); 

は、セッション変数を作成しません。$verifiedの値が「ページBに移動」を作成します。代わりに、あなたはこのように、「middlewareGroups」と「ミドルウェア」を交換してみてください

$request->session()->put('key', 'value'); 
+0

申し訳ありませんが、私はセッションを保存するためにデータベースを使用し、ファイルではないことを私の質問に含めるのを忘れていました。それは行動に影響を及ぼしますか? – Vainglory07

+0

あなたは行動に何を意味するのですか?それは働いているかどうか? – rishal

+0

は動作していません – Vainglory07

1

を使用してセッション変数を作成することができます。

Route::group(['middlewareGroups' => ['web']], function() { 
    Route::get('/page_a', '[email protected]_a'); 
    Route::get('/page_b', '[email protected]_b'); 
}); 

希望をこのことができます!