我有两个表叫做产品,另一个叫做订单 产品列为:id,plant_name,price,stock 作为列的订单:id product_id,quantity。
当有人下订单时,他们会选择一个数量。如何减少另一张桌子上的库存数量?
如果有帮助的话,我在Laravel中使用控制器和elequent。
答案 0 :(得分:0)
这似乎是一般性实施问题?
这取决于您处理订单的方式。如果新的存储在表格中并且您正在运行通过它们的cron,那么循环订单并逐个更新数量。
例如:
$newOrders = \DB::table('orders')->get();
foreach ($newOrders as $order){
$stock = \DB::table('products')->where('id', $order->product_id)->first()->stock;
if($stock > $order->quantity){
\DB::table('products')->where('id', $order->product_id)->decrement('stock',$order->quantity);
}
如果你在控制器中动态处理它,那么跳过上面的循环,只需在处理订单时更新产品表。