Laravel使用where条件更新记录

时间:2020-09-07 13:55:40

标签: laravel eloquent sql-update

我有一个表(退款),其中的字段名为"num_pre",我需要在所有行中插入"num_pre"等于NULL的特定累进代码。例如,仅当"J0620222""J0620223"

时,首先num_pre然后null

我以为是这样

$data = Refunds::where('num_pre', '=', "")->update(array('num_pre' => ????));

但是我不能,因为我需要foreach来创建渐进代码... 谢谢

2 个答案:

答案 0 :(得分:1)

首先获取num_pre为null的所有记录:

$records = Refund::whereNull('num_pre')->get();

然后,循环浏览所有记录并更新该列:

foreach($records as $record){
   $record->num_pre = 'Your new progressive code';
   $records->save();
}

PS:不确定您如何生成渐进代码,因为您没有在问题中提到它。

答案 1 :(得分:0)

Refund::where('num_pre', NULL)->update('field_of_progressive_code', $progressiveCode);

这相当于UPDATE refunds SET field_of_progressive_code = '$progressiveCode' WHERE num_pre = NULL

这将使用给定的代码更新所有递进代码为NULL的行。