1.首先在CartItemController 引入Product Model
2.接著我們要在驗證檢查之後做商品數量防呆邏輯
$product = Product::find( $validated ['product_id']);
if(!$product->checkQuantity($validated ['product_id'])){
return response($product->title.'數量不足' , 400);
}
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
6.開啟POSTMAN輸入product_id =4 的數量 request
可以看到結果數量不足
1.進階的寫法可以利用Transation的方式,但目前課程尚未到那個階段