我正在更新当前的会话数组值,但未更新。
场景:我的控制器被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