将一行的值插入另一行的值? (最好通过口才)

时间:2019-03-22 09:02:51

标签: php sql laravel eloquent

我目前正在尝试创建一个代码,其中将一个特定行的值插入到另一行的同一列中。

例如,我将产品类型A设置为ProdA,并且具有当前数量(curr_quantity),由于变质,ProdA将在1周后变成ProdB,这意味着ProdA的curr_quantity的值将被减去并添加到curr_quantity中关于ProdB,我有更新ProdA的curr_quantity的代码,但当前未添加到ProdB中。

我的控制器代码:

let location = mapView.userLocation
let region = MKCoordinateRegion(center: location.coordinate, span: MKCoordinateSpan(latitudeDelta: 50, longitudeDelta: 50))
mapView.setRegion(region, animated: true)

在我上面的代码中,它目前减去ProdA和ProdB的curr_quantity值并减去,但不是将值从一种产品“转移”到另一种产品。

编辑:在我当前的代码中,由于ProdB应该被“转移”到ProdC,所以两者都减去了。抱歉造成误会!

产品类型为FK,因此产品A在实际代码中为products_id == 1,B == 2和C == 3。

$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,
                        ]);
                }

7天后应该是这样:

[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

是否有办法更新ProdA的curr_quantity并将其传输到ProdB?

0 个答案:

没有答案