Я обновляю текущее значение массива сеанса, но оно не обновляется.
Сценарий: мой контроллер вызывается по запросу 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