2016-10-14 56 views
1

私はLaravelアプリケーションを持っています。セッション変数には何か不思議なことが起こっています。私はいくつかの入力をチェックし、いくつかの条件に依存して、それが決定するかどうかを決定するメソッドをコントローラーに持っています。return redirect()->back()私はJsonという変数を送りたいのでセッション変数がLaravel 5で送信されていません

$msg=json_encode([ 
    'status' => 'failed', 
    'field'=>'mail' 
]); 
return redirect()->back()->with('msg',$msg); 

だから、それは非常によくリダイレ​​クトが、その後ビューで私が持っている::簡単に私はこれを持っている

@if (Session::has('msg')) 
    //come stuffs 
@endif 

をしかし、それはmsg変数が渡されないのが好きらしいです。 Laravelのマニュアルによると、redirect backの変数はアクセシブルなトラフですSession

+1

はあなたのアクセスログをご覧ください。これは、次のリクエストのためだけにデータを点滅させています。リダイレクト先のページがどこかにリダイレクトされていれば、そのデータは失われてしまいます。 – user3158900

答えて

0

Laravel 5.2でこの問題が発生しました。私はそれがバグかそれが修正されたかどうかわからないが、私はredirect()->back()を使わないことでそれを回避した。私はそれがブラウザのキャッシュ機構に関係していると思う。あなたが原因を突き止めたら、私は興味があります。私がテストしたとき、私はあなたがリダイレクト

を開始する前$request->session()->put('key', 'value');を使用する必要があると思う

+0

はい、これはLaravel 5.2 –

0
+0

はい、私はすでに作っていましたが、同じものでした –

+0

あなたは 'if(isset($ request-> session() - > get( 'key'))){}' – darham

+0

はい、 '$ request-> session() - > put( 'key'、 'value');'を入れた直後に書きましたが、それは存在しますが、ビューにはもう存在しません –

1

で私のためにその作業をドキュメントを参照してください。 セッションがデータを保存していない可能性があります。セッションが機能しているかどうかを確認してください。 私のテスト出力

@if (Session::has('msg')) 
     {{ session('msg') }} 
    @endif 

enter image description here

+0

はい、おそらく私がウェブミドルウェア –

関連する問題