通过Ajax创建Laravel会话并检查它是否存在
问题描述:
我试图使用Laravel的会话来制作一个购物车,就像使用Laravel的会话一样,并且在前端,我使用Ajax指示后端创建会话。通过Ajax创建Laravel会话并检查它是否存在
//add to cart
$(document).on('click','.add-to-cart',function(e){
e.preventDefault();
var dis = $(this);
$.ajax({
url : site_link+'/product/add-to-cart',
data : { item_id : dis.attr("data-id") },
type : 'post',
dataType : 'json',
success: function(e){
console.log(e);
}
})
});
然后检查车
//check the cart
$(document).on('click','.check-the-cart',function(e){
e.preventDefault();
var dis = $(this);
$.ajax({
url : site_link+'/product/check-the-cart',
data : { item_id : dis.attr("data-id") },
type : 'post',
dataType : 'json',
success: function(e){
console.log(e);
}
})
});
,并在控制器,车添加到会话
public function add_to_cart(Request $request){
$product = collect([1,2,3,4]);
Session::put('cart', $product);
dd(var_dump(session::get('cart')));
}
和转储返回预期的数据,然后将第二个POST请求,检查'购物车'会话内容。
public function add_to_wishlist(Request $request){
dd(var_dump(session::get('cart')));
}
但它返回'NULL',我不希望为null,因为我在第一个'POST'请求中将'cart'设置为会话。任何想法,请帮助吗?
答
尝试改变
Session::put('cart', $product);
到
Session::push('cart', $product);
,并获取会话值
Session::get('cart')[0];