如何检查购物车是否已添加,不允许更多,以及如何更新其他购物车

时间:2019-08-17 09:31:45

标签: laravel

我正在使用作曲家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]);

    }

我不确定该如何管理。请指导

1 个答案:

答案 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