我正在使用流明制作API。我正在尝试更新条目并解雇更新的观察者。 到目前为止我尝试了什么
$data = [];
$fota_device = Fota_device::find($deviceId);
$fota_device->update($data);
此代码不会更新数据库或触发更新事件。
$data = [];
$fota_device = Fota_device::where('id', $deviceId);
$fota_device->update($data);
此代码更新数据库,但也不会触发事件。 我已经读过,雄辩不会在大规模分配上发生更新事件,但这种方式之一至少应该触发事件,但事实并非如此。
我的观察员
public function updated(Device $device)
{
dd($fota_device);
$user = Auth::user();
$action = Users_action::create([
'userId' => $user->id,
'created_at' => \Carbon\Carbon::now()->toDateTimeString()
]);
}
为什么第一个代码示例不更新表中的条目,为什么观察者不会被解雇?
答案 0 :(得分:3)
在update
上,它仅触发:saving
,saved
,当它没有修改任何内容时;
这不会触发update
事件,因为它是mass update:
$fota_device = Fota_device::where('id', $deviceId)->update(['fieldName' => $value]);
如果$value
与数据库中的值不同,则会触发更新事件:
User::find($id)->update(['fieldName' => $value]);
在您的情况下,$data = [];
是空数组,并且它没有修改(更新)任何内容;