Javascript 如何在laravel项目中检测被破坏的来宾会话?
我有类似的购物车。在我的项目中,用户和来宾可以向购物车添加产品。没问题。当客户用户在购物车中添加产品时,我用会话id将其保存到数据库中。这也可以。但是当访客用户关闭网站时,我无法从数据库中删除记录。如何检测已破坏的会话 我有一个GuestUserProvider,它在db中创建新的来宾用户Javascript 如何在laravel项目中检测被破坏的来宾会话?,javascript,php,laravel,Javascript,Php,Laravel,我有类似的购物车。在我的项目中,用户和来宾可以向购物车添加产品。没问题。当客户用户在购物车中添加产品时,我用会话id将其保存到数据库中。这也可以。但是当访客用户关闭网站时,我无法从数据库中删除记录。如何检测已破坏的会话 我有一个GuestUserProvider,它在db中创建新的来宾用户 $session_id = session()->get( '_token' ); $guests = GuestUser::all(); foreach
$session_id = session()->get( '_token' );
$guests = GuestUser::all();
foreach ($guests as $guest){
}
if(!empty($guest)){
if($session_id != $guest['session_id']){
$created = GuestUser::create([
'session_id' => $session_id,
'ip' => $clientIP = \Request::ip()
]);
}
}else{
$created = GuestUser::create([
'session_id' => $session_id,
'ip' => $clientIP = \Request::ip()
]);
}
并添加到购物车功能
public function gocart(Request $request)
{
$session_id = session()->get( '_token' );
if(Auth::User()){
$ifs = Cart::where(['product_id' => $request['id'], 'user_id' =>
Auth::user()->id])->get();
}else{
$ifs = Cart::where(['product_id' => $request['id'], 'session_id'
=> $session_id])->get();
}
if(count($ifs) > 0) {
foreach ($ifs as $if) {}
$count = $if['quantity'];
$newCount = $count + 1;
if(count($ifs) >= 1){
Cart::where('product_id', $request['id'])->update([
'quantity' => "$newCount"
]);
}
}else{
$products = ProductNew::where('id', $request['id'])->get();
$images = Pimage::select('image')->where('product_id',
$request['id'])->first();
$image = $images['image'];
foreach ($products as $product) {
$main = ProductNew::where('group', $product['group'])-
>first();
$title = $main['title'];
$price = $product['price'];
$quantity = 1;
if(Auth::user()){
Cart::create([
'user_id' => Auth::user()->id,
'product_id' => $request['id'],
'session_id' => $session_id,
'quantity' => $quantity,
'title' => $title,
'price' => $price,
'image' => $product['image'],
'option' => $product['option'],
'ip' => $clientIP = \Request::ip()
]);
}else{
Cart::create([
'user_id' => '0',
'product_id' => $request['id'],
'session_id' => $session_id,
'quantity' => $quantity,
'title' => $title,
'price' => $price,
'image' => $product['image'],
'option' => $product['option'],
'ip' => $clientIP = \Request::ip()
]);
}
}
}
toastr()->error('Data has been saved successfully!');
return back();
}
非活动会话数据将根据config
session.lifetime
参数自动清除。但不会自动从数据库中清除是的,它将自动从数据库中清除。再见,再见,对不起,兄弟。在我的系统中,它没有被清除。我的购物车中已销毁的会话产品和来宾用户表中已销毁的会话非活动会话数据将根据configsession.life
参数自动清除。但不会自动从数据库中清除是的,它将自动从数据库中清除。再见,再见,对不起,兄弟。在我的系统中,它没有被清除。已销毁的会话产品已在我的购物车中,已销毁的会话已在我的来宾用户表中