我有两个表,一个称为产品,另一个称为订单。
产品列:id、工厂名称、价格、库存。
订单列:id Product_id、数量。
当有人下订单时,他们会选择数量。如何减少另一张 table 上的库存数量?
如果有帮助的话,我正在 Laravel 中使用 Controller 和 elequent。
最佳答案
这似乎是一个一般性的实现问题?
这取决于您处理订单的方式。如果新订单存储在表中,并且您正在运行一个 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);
}
如果您在 Controller 中即时处理它,则跳过上面的循环,只需在处理订单时更新产品表即可。
关于php - laravel中如何用一个表中的值减去另一个表中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48272882/