我正在使用作曲家require gloudemans / shoppingcart我不确定如何保持金额。
当我使用一条表示添加项目的路线时,
如果这是唯一的,我如何有条件地设置要在购物车中添加商品
public function bookItem($id) {
$item = Item::where([
'status' => '1',
'id' => $id
])->first();
$product = Cart::add($item->id, $item->name, 1, $item->price); // This should not call always if it has not generated a row id then it should call
Cart::update($product->rowId, ['price' => 200]); // Will update the price if it is differ
return redirect()->route('book.item', ['id' => $item->id]);
}
我不确定该如何管理。请指导
答案 0 :(得分:0)
看起来该包具有getContents()函数,该函数将所有项目收集到一个集合中。它还具有一个search(Closure)函数,该函数调用getContents(),然后在集合上使用Laravel的filter函数并返回结果。
$search = Cart::search(function($key,$value) use ($item) {
return $value === $item->id;
})->first();
if(!empty($search)){
Cart::update($search->rowId, ['price' => 200]);
}
else {
$product = Cart::add($item->id, $item->name, 1, $item->price);
}
如果您不熟悉,请一定要查看Laravel集合文档。这是过滤器的入口: https://laravel.com/docs/5.8/collections#method-filter