2016-12-13 2 views
1

flashdataを使用してフォーム提出の応答を表示していますが、永遠に持続しています。Laravel Flashデータを無期限に保存する

たとえば、フォームが検証されて正常に送信されると、成功メッセージが表示され、ページを更新する回数や他のページに移動した回数に関係なく、成功メッセージが表示されます。次のように

(検証後)私のリダイレクトは、次のとおりです。

// Redirect back with success message 
return redirect()->back() 
->with('form_' . $form->identifier . '_response', json_encode([ 
    'status' => 'success' 
])); 

そしてビューでは、次のようにチェックします。

@if(session('form_'.$form->identifier.'_response')) 

     @if(json_decode(session('form_'.$form->identifier.'_response'),true)['status'] == 'success') 

      <div class="alert alert-success">Form has been submitted, thank you!</div> 

     @endif 
@endif 

しかし、それは最初に提出した後、すべての時間をDIV成功を示しています。誰も問題を探す場所を知っていますか?ありがとう!

+0

エラーが発生したときに 'redirect() - > back() - > withInput()'を返すと同じことが起こります - ページをリフレッシュしたり移動した回数に関係なく、入力はセッション中です。 – Giedrius

答えて

0

コントローラの1つにwebミドルウェアが含まれていなかったことがわかりました。間違いがあります。

フォームハンドラコントローラにはwebミドルウェアが含まれていたため、セッションが設定されましたが、フォームを表示しているコントローラにミドルウェアがないため、セッションからフラッシュデータが削除されませんでした。

関連する問題