我试图使用会话忘记laravel但不幸的是我无法设法运行它我也尝试使用UNSET()仍然无法正常工作,下面附带的是通过保存接收新产品的Controller正在使用数组并验证该产品何时已保存,它将不再保存。
$product_details = array('product_id' => $request->get('product_id'),
'product_qty' => $request->get('product_qty'));
$products = $request->session()->get('product');
if ($request->session()->has('product')) {
foreach ($products as $key => $value)
{
if($value['product_id']==$request->get('product_id'))
{
$request->session()->forget('product',$request->get('product_id'));
}
}
session()->push('product', $product_details);
}
else
{
session()->push('product', $product_details);
}
return true;
答案 0 :(得分:1)
如果我收到您的问题,此代码应该可以正常工作并进行一些优化。您不需要忘记旧产品并添加新产品,浪费时间,只需添加一个标志$product_exists
来定义是否存在然后添加/不添加。
$product_details = array('product_id' => $request->get('product_id'),
'product_qty' => $request->get('product_qty'));
$product_exists = false;
if ($request->session()->has('product'))
{
$products = $request->session()->get('product');
foreach ($products as $key => $value)
{
if($value['product_id']==$request->get('product_id'))
{
$product_exists = true;
}
}
if(!$product_exists){
session()->push('product', $product_details);
}
} else {
session()->push('product', $product_details);
}
return true;
希望得到这个帮助。
答案 1 :(得分:0)
我使用。$ key
创建了我自己的版本 $product_details = array('product_id' => $request->get('product_id'),
'product_qty' => $request->get('product_qty'));
$products = $request->session()->get('product');
if ($request->session()->has('product')) {
foreach ($products as $key => $value)
{
if($value['product_id']==$request->get('product_id'))
{
$request->session()->forget('product.'.$key);
}
}
session()->push('product', $product_details);
}
else
{
session()->push('product', $product_details);
}
return true;
}