2017-11-02 4 views
1

入力値をセッションに保存してブレードに表示することはできますが、フォームに戻って新しい項目を追加すると、前の項目はセッションに残り、新しいもの!私はセッションに忘れる追加しようとしましたが、私はLaravel特定のページに表示した後にセッションをクリアする方法

$(document).on('click', '.btn_getbids', function() { 
$.ajax({ 
    type: 'post', 
    url: 'addItem', 
    data: { 
     '_token': $('input[country=_token]').val(), 
     'country': $('input[name=country]').val() }, 
    success: function(data) { 
    }, }); 
    $('#country').val('');}); 

コントローラ

public function addItem(Request $request) { 

    $request->session()->put('country', $request->country); 

    } 

customer.blade

<div class="alert alert-success"> 
     {{Session::get('country')}} 
    </div> 
をコントローラに値を渡すために、AJAXを使用している動作しませんでした

答えて

0

をすべてのセッションデータを洗い流すますflashメソッドを使用してみてください

$request->session()->flash('country', $request->country); 
+0

flush()メソッドはflash()ではありません。 –

+0

これはflash()です - https://laravel.com/docs/5.5/session#flash-data –

+0

ありがとうございました。あなたの答えはうんざりですが、セッション変数を使用できるのは一度だけです。 –

0

私は正しくuを得る場合、

session->flush(); 

は...重要なパラメータで

session->forget('key'); 

を使用し、あなたがクリアしたいデータを指定する代わりに、

+0

しかし、私はユーザーのログインデータを保存したい! $ request-> session() - > flush( 'country')を試しました。また、ログインから私を蹴って、再度ログインする必要があります! –

+0

詳細については、以下のリンクを参照してください。 https://laracasts.com/discuss/channels/laravel/remove-array-element-from-session –

0

あなたは、これはあなたのコントローラ内のコードの下に追加してみてください:

if($request->session()->has('country') && $request->session()->get('country') != '') { 
    $request->session()->forget('country'); 
} else { 
    $request->session()->put('country', $request->country); 
} 
関連する問題