Laravel Session не обновляет значение ассоциативного массива - PullRequest
0 голосов
/ 19 декабря 2018

Я обновляю текущее значение массива сеанса, но оно не обновляется.

Сценарий: мой контроллер вызывается по запросу ajax и затем передает qty, цену продукта.На моей странице корзины есть кнопка увеличения и уменьшения количества.Вызов 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 (кол-во, 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...