php - laravel中如何用一个表中的值减去另一个表中的值

标签 php mysql

我有两个表,一个称为产品,另一个称为订单。
产品列: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/

相关文章:

php - php内存中数组的大小

php - 为什么前/后增量运算符行为错误?

javascript - 使用 Sendemail 的 HTML 表单

php - cakephp 使用 hasAndBelongsToMany 进行分页查询

mysql - SQL 以任意顺序搜索单词

php - preg_match 允许反斜杠的问题

php - 我如何使用 php 数组作为值在 mysql 表上运行查询

php - Full Outer Join(左联并右联)MySQL多表

php - mysqli_query 返回不满足条件

php - 需要在 .htaccess 中的 RewriteRule 中隐藏 id