我正在使用 Laravel 制作电子商务网站,我希望任何机构都可以将商品添加到购物车,而不仅仅是验证用户,所以我使用会话来生成 cart_id 变量。
我制作新的中间件来检查会话是否有 cart_id 如果没有则生成新的 uniquid
` 类 CartId{
public function handle(Request $request, Closure $next)
{
if(!Session::has('cart_id')) {
$cart_id = uniqid();
Session::put(['cart_id'=>$cart_id]);
Session::save();
}
return $next($request);
}
}
`
但是当尝试制作 dd(session()->get('cart_id')) 时,我每次刷新都会得到新的 id !!!
为什么:(??
我正在使用这个包 darryldecode/laravelshoppingcart
我试图让 php artisan 优化:cleare 但没有任何效果:(
尝试从中间件中删除
Session::save()
行,看看是否可以解决问题:
class CartId
{
public function handle(Request $request, Closure $next)
{
if (!Session::has('cart_id')) {
$cart_id = uniqid();
Session::put('cart_id', $cart_id);
}
return $next($request);
}
}
在此代码中,
Session::put('cart_id', $cart_id);
设置cart_id
会话变量。会话数据将在请求结束时自动保存。