我使用会话在laravel中实现了购物车。现在,我对于结帐后如何为每个用户清除购物车尚不清楚。我的理解是,会话在打开浏览器时创建,在关闭浏览器时销毁。我还获得了在用户计算机上创建会话的信息。用户签出后我该如何销毁该会话对象?
我所拥有的是,状态代码将被发送回我的应用程序中的一条路线,如果付款成功,该路线将触发清除购物车功能。我是否误解了会话的运行方式?
我希望当用户完成交易时,支付网关将返回一个代码,我可以使用该代码来清除会话。
答案 0 :(得分:0)
是的,您可以在成功交易后清除购物车的会话值。
假设您在会话中将购物车详细信息存储在名为购物车的键中,则可以从会话中将其删除,如下所示:
$request->session()->forget('cart');
或使用如下的帮助方法:
session()->forget('cart');
这是如果购物车详细信息存储在会话中,如果它们存储在数据库中,则可以在结帐开始时开始mysql(如果使用的是mysql)事务,并为该特定用户清除购物车。万一付款失败,您可以回滚事务,而购物车中的所有内容均保持不变。