#設計Product商品數量的檢查

1.首先在CartItemController 引入Product Model

1629861108241.jpg

2.接著我們要在驗證檢查之後做商品數量防呆邏輯

$product = Product::find( $validated ['product_id']);
        if(!$product->checkQuantity($validated ['product_id'])){
            return response($product->title.'數量不足' , 400);
        }

1629861383308.jpg

3.接著來到Product model 來做checkQuantity的函數去做數量檢查

public function checkQuantity($quantity){
        if($this->quantity < $quantity){
            return false;
        }
        return true;
    }
}

4.然後將CartItemController 原本是撈認證後的product_id改為撈model本身的id 去做重購

$result = $cart->cartItems()->create([
            'product_id' => $product->id,
            'quantity' => $validated ['quantity']
        ]);

5.現在來測試結果product數量防呆,首先先將product_id =4 數量改為 1

1629861988168.jpg

1629862015061.jpg

6.開啟POSTMAN輸入product_id =4 的數量 request

可以看到結果數量不足

1629862093961.jpg

#購物車轉訂單時的數量防呆

1.進階的寫法可以利用Transation的方式,但目前課程尚未到那個階段