Laravel会话未更新关联数组值

时间:2018-12-19 12:58:19

标签: php laravel-5.5

我正在更新当前的会话数组值,但未更新。

场景:我的控制器被ajax请求调用,然后传递数量,产品价格。在我的购物车页面上,我有数量递增和递减按钮。单击增量或减量按钮将执行Ajax调用。每次执行每一个增减ajax请求时。如果我们要在购物车中添加两个以上的产品,则会话值不会更新。

例如:如果用户更新了第一产品的数量,则会话中的所有事物均正确更新,但是如果我们更新了第二产品数量,则第一产品的数量将与最初的数量相同,并且第二产品的数量将被更新。

因此不会保留会话值。

下面是代码

公共功能updateCart(Request $ request){

  $data = $request->input(); //to get the post data from ajax

   $order        = $request->session()->get('order');
   $orderDetails = $request->session()->get('order_detail');


    $order['grand_total']=$data['grandtotal'];

    //$request->session()->push($orderDetails[$data['productId']]['product_quantity'], $data['qty']);

 $orderDetails[$data['productId']]['product_quantity']=$data['qty'];

$orderDetails[$data['productId']]['total_product_price'] = $data['totalProductPrice'];

      $request->session()->put('order', $order);
      $request->session()->put('order_detail', $orderDetails);



    $order        = $request->session()->get('order');
    $orderDetails = $request->session()->get('order_detail');

                      ;
     echo "<pre>"; print_r($orderDetails);  exit;

             return response()->json(['status' => 'success', 'response' => true,'data'=>'Logs written successfully']);


        }

下面是我的数组结构

Array
(
    [cf9e57dc-6923-d774-f61f-40022a82e07b] => Array
        (
            [product_name] => EGG
            [product_id] => cf9e57dc-6923-d774-f61f-40022a82e07b
            [product_quantity] => 1
            [product_description] => 
            [price] => 30
            [preparation_time] => 00:05:00
            [company_id] => 897e4562-03b5-9259-5e65-fa525dc4258d
            [store_id] => 8754f65d-3e25-bfcd-5b82-7b7d76b3fc2c
            [delivery_date] => 2018-12-19
            [total_product_price] => 30
        )

    [bfcb777b-acbf-c4d4-aa1f-1cbe57c6e880] => Array
        (
            [product_name] => burger
            [product_id] => bfcb777b-acbf-c4d4-aa1f-1cbe57c6e880
            [product_quantity] => 3
            [product_description] => 
            [price] => 20
            [preparation_time] => 00:10:00
            [company_id] => 897e4562-03b5-9259-5e65-fa525dc4258d
            [store_id] => 8754f65d-3e25-bfcd-5b82-7b7d76b3fc2c
            [delivery_date] => 2018-12-19
            [total_product_price] => 60
        )

)

下面是我的Ajax代码

函数updateCart(qty,productId,totalProductPrice,grandtotal){

   var url= $('#baseUrl').val()+"/updateCart";

      $.ajaxSetup({
                    headers: {
                        'X-CSRF-TOKEN': $("input[name=_token]").val()
                    }
                });

      $.ajax({
                    url: url,
                    data: {'qty': qty, 'productId':productId, 'totalProductPrice':totalProductPrice,
                            'grandtotal':grandtotal  },
                    type: 'POST',
                    datatype: 'JSON',

                    success: function (response) {
                        if (response.status === 'success') {
                            console.log(response.data);
                            //$('#myModalCallback').modal('toggle');
                        } else {
                            //alert('Issue');
                        }
                    },
                    error: function (response) {
                        $('#errormessage').html(response.message);
                    }
                });


  }

感谢Advnace

0 个答案:

没有答案