我正在使用会话来存储购物车物品。我可以修改会话项但无法删除它们。这是我坚持的功能
public function removecartitems(Request $request)
{
$id = $request->input('id');
$items = Session::get('cart.items', []);
foreach ($items as &$item) {
if ($item['id'] == $id) {
unset($item);
}
}
//Session::set('cart.items', $items);
$request->session()->put('cart.items', $items);
return 'removed';
}
这是我如何在会话中添加项目
$Item = array("id"=>"$productid", "name"=>"$name", "qty"=>"$qty", "rate"=>"$rate", "preview"=>"$preview", "front"=>"$front", "back"=>"$back");
$request->session()->push('cart.items', $Item);
答案 0 :(得分:0)
我想你可以试试这个:
if($request->session()->has('cart.items') && $request->session()->get('cart.items') != '') {
$request->session()->forget('cart.items.name');
}
希望这对你有用!!!
答案 1 :(得分:0)
首先,仅仅是一个FYI,您不需要将变量包装在" "
中。
我建议您更改使用push()
到put()
向购物车添加商品的逻辑,并使用产品ID:
$item = [
"id" => $productid,
"name" => $name,
"qty" => $qty,
"rate" => $rate,
"preview" => $preview,
"front" => $front,
"back" => $back,
];
$request->session()->put('cart.items.' . $item['id'], $item);
然后你的删除方法看起来像:
public function removecartitems(Request $request)
{
$request->session()->forget('cart.items.' . $request->input('id'));
return 'removed';
}
希望这有帮助!