我正在尝试使用bumbummen99/LaravelShoppingcart实现购物车功能,用户可以在其中增加/减少购物车中的商品数量。按“+”或“-”会触发一个名为updateCart()的 onclick javascript 函数。
updateCart()使用Axios向我的 CartController@updateCart() 发送一个发布请求,我在其中运行逻辑来更新购物车数量。
问题:提交发布请求后,我无法访问全局购物车会话。
一旦我在 CartController 中的 updateCart() 中,我可以成功地从 axios 访问请求变量。但是,我无法访问我的购物车会话。即使我有正确的 rowId,我也找不到购物车物品。
我的购物车中有商品,但键入 Cart::content() 或 Cart::get() 返回错误 500,因为它认为我的购物车是空的。
一旦我可以检索到我的购物车,我就可以使用 Cart::update() 等实现更新数量的逻辑。请帮助!
点击 + 或 - 触发 updateCart(action,rowId)
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
function updateCart(action,rowId) {
axios.post('/api/update-cart', {
action: action,
rowId: rowId
}).then(response => console.log(response)).catch(error => {
console.log(error.response)
});
}
</script>
api.php
Route::post('update-cart', 'CartController@updateCart')->name('update-cart');
购物车控制器.php
public function updateCart(Request $request) {
//works, returns '620d670d95f0419e35f9182695918c68'
return $request->get('rowId');
//works, returns 'add' or 'subtract'
return $request->get('action');
//fails, returns empty array
return Cart::content();
//fails, error 500 because cannot find cart instance
return Cart::get('620d670d95f0419e35f9182695918c68');
return 200;
}
运行时,我无法访问 Cart::content() 和相关的 Cart 函数。它试图返回应该显示我的整个购物车的 Cart::content()。
这是我在任何其他页面上返回 Cart::content()
慕勒3428872
慕慕森