通过Ajax创建Laravel会话并检查它是否存在

时间:2016-12-05 23:23:36

标签: php laravel session laravel-5.3

我尝试使用Laravel会话制作类似购物车的购物车,而在前端,我使用Ajax指示后端创建会话。

//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')));
}

并且转储返回预期数据,然后返回第二个帖子请求,检查'购物车'会议内容。

public function add_to_wishlist(Request $request){
    dd(var_dump(session::get('cart')));
}

但它返回' NULL'当我设置“购物车”时,我并不期望它是空的。在第一个' POST'请求。有什么想法,请帮忙吗?

1 个答案:

答案 0 :(得分:1)

尝试更改

Session::put('cart', $product);

Session::push('cart', $product);

并获取会话值

Session::get('cart')[0];