Laravel关于一条数据中直接把字段a赋值给字段b

277 阅读1分钟

问题背景: 在写一个外卖demo的库存定时更新操作时,规格下有每日库存和每日最大库存2个字段。每天定时十二点,需要用每日最大库存字段更新到每日库存字段。

一开始,我只顾着看你,装作不经意心却飘过去。%…!@#…&*()( 啊哼,不好意思走偏了。

renxing.jpg
这种需求,人家一开始是拒绝的。然鹅,思绪控制不住寄几啊,没得办法。脚趾想了一下。嗯,阔以如下:

//第一步,查数据
$skuData = DB::table('goods_sku')->where('id',$skuId)->first();
//第二步,更新
$updateData = [
    'stock_daily'=>$skuData->stock_daily_max,
];
$update = DB::table('goods_sku')->where('id',$skuId)->update($updateData);

脚趾一想。嗯,这似乎能达到果效,但秉承laravel一贯的优雅代码风格,这画风好像有点不对啊。这回换手指头,于是掐指一想,能不能一次查询搞定?

anpai.jpg

于是翻箱倒柜,终于让我找到优雅而不失风骚的写法:

$update = DB::table('goods_sku')->where('id',$skuId)->update(['stock_daily'=>DB::raw('stock_daily_max')]);

嗯,终于,基本上满意,(幸好幸好,手指再想不出来,不是要暴露我没脑的问题了);

wunao.jpg

*小白日志,如有错误,还望指出,改不改就是我的事了[手动斜眼笑]*😏