Laravel查询意外更新多行

时间:2019-08-28 10:28:35

标签: laravel logging where-clause auditing

在我的Web应用程序中,我试图更新一个工作指令上的许多笔记之一。

如果我这样编写查询(案例1 ):

// NOTE UPDATE WORKING FINE
Model::where('RN_key', $RN_key)->where('anNo', $anNo)->update(['acNote' => $request['note']]);

我得到了我想要的东西,它工作正常-仅按原样更新了一份关于工单的注释。

如果我使用first()和save()这样的函数编写查询更新(情况2 ):

// NOTE UPDATE NOT WORKING - Updates EVERY note on one work order but should update ONLY one
$getWorkSpecification = __vVX_ServisniNalog_Radovi::where('RN_key', $RN_key)->where('anNo', $anNo)->first();
$getWorkSpecification->acNote = $request['note'];
$getWorkSpecification->save();

然后,它更新并覆盖同一订单上的每个便笺,因此该订单上的所有其他便笺都会丢失。为什么会这样呢?我需要使其与first()和save()函数一起使用,因为它会触发事件,因此Laravel Auditing可以保存审计,因此我可以在任何用户进行的每一个模型更改上都有日志。

对于案例1,每个注释都可以更新,但是不会记录任何审核,这就是问题所在。

0 个答案:

没有答案