php - 将一行的值插入另一行的值?(最好通过 Eloquent)
问题描述
我目前正在尝试创建一个代码,其中一个特定行的值被插入到另一行的同一列中。
例如,我的产品类型 A 为 ProdA,它有一个当前数量(curr_quantity),ProdA 将在 1 周后由于变质而变成 ProdB,这意味着 ProdA 的 curr_quantity 的值将减去并添加到 ProdB 的 curr_quantity,我有更新 ProdA 的 curr_quantity 的代码,但它目前没有添加到 ProdB。
我的控制器代码:
$decrease = Product::where('created_at', '<', Carbon::now()->subDays(7))
->where('curr_quantity', '>', 0)
->get();
foreach($decrease as $dec){
$sub = $dec->curr_quantity;
if($dec->products_id == 1){
$dec->update([
'curr_quantity' => $dec->curr_quantity - $sub
]);
}
if($dec->products_id == 2){
$dec->update([
'curr_quantity' => $dec->curr_quantity - $sub,
]);
}
在我上面的代码中,它当前减去 ProdA 和 ProdB 的 curr_quantity 并减去,但它不是将值从一种产品“转移”到另一种产品。
编辑:在我当前的代码中,由于 ProdB 应该被“转移”到 ProdC,所以两者都减去了。很抱歉对于这个误会!
Product Type 是一个 FK,所以 Prod A 在实际代码中是 products_id == 1、B == 2 和 C == 3。
[Sample]
ID | Product Type | curr_quantity
0 | Prod A | 70
1 | Prod B | 30
2 | Prod C | 10
3 | Prod A | 90
4 | Prod B | 05
5 | Prod C | 05
7天后应该是这样的:
ID | Product Type | curr_quantity
0 | Prod A | 0
1 | Prod B | 70
2 | Prod C | 40
3 | Prod A | 0
4 | Prod B | 90
5 | Prod C | 10
有没有办法更新 ProdA 的 curr_quantity 并将其传输到 ProdB?
解决方案
推荐阅读
- java - 无法将 Spring mvc 部署到 intellij 中的 tomcat
- android - 关于在特定设备上进行电话管理器空值检查期间的错误
- ansible - 如何检查特定端口上的两个节点之间是否可以通信
- c# - 如何仅从文本中删除 url 而忽略 c# 中的其他 url
- python - 如何在缺少数据的情况下使用 tf.data.experimental.make_csv_dataset?
- python - Pandas - 通过所有独特的组合组合两个系列
- javascript - Javascript函数不会打印
- git - 在提交到 master 后,如何撤销我所做的更改?
- apache-syncope - 使用晕厥日志分析谁登录
- javascript - 日期功能合二为一