【问题标题】:Storing variables into session but sometimes display empty将变量存储到会话中,但有时显示为空
【发布时间】:2017-11-02 15:22:52
【问题描述】:

我在会话中使用 ajax 和控制器对数据进行排序,但有时它显示数据,有时显示为空,我必须使用 Flash,因为我希望当我返回主页时会话为空。我该如何解决这个问题?

 $(document).on('click', '.btn_getbids', function(e) {
  $.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
    }});
   e.preventDefault();
 var form = document.forms.namedItem("booking-form"); 
 var formData = new FormData(form); 
 $.ajax({
    type: 'POST',
    url: 'addItem',
    contentType: false, 
    data: formData,
    processData: false,
    success: function (data) {   },
    });});

控制器

public function addItem(Request $request) {


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

Diaplaay 刀片

      <div class="alert alert-success">
                     {{Session::get('country')}} <br>
                      {{Session::get('administrative_area_level_1')}} <br>
                     {{Session::get('locality')}} 

      </div>

【问题讨论】:

    标签: php laravel session


    【解决方案1】:

    使用flash() 只会将数据存储到会话中,仅用于下一个请求

    闪存数据

    有时您可能希望将项目存储在会话中仅用于下一个请求。您可以使用 flash 方法执行此操作。使用此方法存储在会话中的数据将仅在后续 HTTP 请求期间可用,然后将被删除。 Flash 数据主要用于短暂的状态消息:

    https://laravel.com/docs/5.5/session#flash-data

    您想改用put() 将其存储在会话中。例如:

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

    您可以使用forget()从会话中删除一个值

    $request->session()->forget('country');
    

    或全部使用flush()

    $request->session()->flush();
    

    https://laravel.com/docs/5.5/session#deleting-data

    【讨论】:

      猜你喜欢
      • 2015-12-18
      • 1970-01-01
      • 2013-03-02
      • 1970-01-01
      • 2016-03-14
      • 2013-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多