如何使用laravel中另一个表中的值减去一个表上的值

时间:2018-01-16 01:25:55

标签: php mysql

我有两个表叫做产品,另一个叫做订单 产品列为:id,plant_name,price,stock 作为列的订单:id product_id,quantity。

当有人下订单时,他们会选择一个数量。如何减少另一张桌子上的库存数量?

如果有帮助的话,我在Laravel中使用控制器和elequent。

1 个答案:

答案 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);
 }

如果你在控制器中动态处理它,那么跳过上面的循环,只需在处理订单时更新产品表。