【问题标题】:How do you subtract a value on one table with a value from another table in laravel你如何用 laravel 中另一个表中的值减去一个表上的值
【发布时间】:2018-06-24 16:01:46
【问题描述】:

我有两张表,一张称为产品,另一张称为订单。
产品列:id、工厂名称、价格、库存。
订单列:id product_id, quantity。

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

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

【问题讨论】:

  • 你不会只更新Products 表,即UPDATE Products SET stock = stock - :orderQty WHERE id = :orderProductId 吗?您甚至可以在 Orders 表的插入/更新触发器中执行此操作

标签: php mysql


【解决方案1】:

这似乎是一个通用的实现问题?

这取决于您如何处理订单。如果新的订单存储在表中,并且您正在运行一个 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);
 }

如果您在控制器中即时处理它,则跳过上面的循环并在处理订单时简单地更新产品表。..

【讨论】:

  • 我想在处理订单时更新产品表,但不知道该怎么做。我是新手
猜你喜欢
  • 2019-11-07
  • 2021-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-15
  • 1970-01-01
  • 2022-10-15
  • 2013-11-29
相关资源
最近更新 更多