laravel中observe不能监听到updated事件原因

//这种方式不行
Student::where('id', $request->student_id)->update($student);
$findStudent = Student::where('id', $request->student_id)->first()->update($student);
// 这种方式模型观察者才能监听到updated 
$findStudent = Student::find($request->student_id); $findStudent->update($student);

//这种2方式也可以
// 第一种
Student::find($student->id)->update(['getter_updated_at'=> time()]);

// 第二种
$student = Student::find($studentId);
addStudentLog($student->id, 15, "批量修改名单归属人:【{$student->getter}】→【{$request->getter}】");
$student->getter = $request->getter;
$student->getter_time = date('Y-m-d H:i:s', time());
$student->updater = $request->user()->real_name;
$student->save();

注意:通过 Eloquent 进行批量更新时,被更新模型的 saved 和 updated 事件不会被触发。这是因为批量更新时,并没有真的获取模型。

记住要真的获取模型, 并且要数据变动才可以

正心投入专注
原文地址:https://www.cnblogs.com/guiyishanren/p/15687354.html