Laravel如何在特定页面中显示后清除会话

时间:2017-11-02 12:30:54

标签: php laravel session

我可以在会话中存储输入值并将其显示在刀片​​中,但是当我返回表单并添加新项目时,上一个项目仍然在会话中并且无法显示新的项目!!我试图添加忘记会话但没有工作,我使用ajax将值传递给控制器​​

$(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>

3 个答案:

答案 0 :(得分:1)

如果我正确的话,

session->flush();

将刷新所有会话数据,而不是使用

session->forget('key');

使用key参数,您可以指定要清除的数据......

答案 1 :(得分:1)

尝试使用flash方法

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

答案 2 :(得分:1)

您应该在控制器中尝试添加以下代码:

if($request->session()->has('country') && $request->session()->get('country') != '') {
  $request->session()->forget('country');
} else {
  $request->session()->put('country', $request->country);
}