【发布时间】:2019-11-04 18:17:25
【问题描述】:
如果被 isDirty() 方法更改,我的代码只会保存一个 field(efirst) 的数据,并且它工作正常。如果我有十个字段而不写每个字段名,如何获得相同的结果?
控制器:
public function update(TeacherRequest $request, $id)
{
$teacher = Teacher::find($id);
$teacher->efirst = $request->efirst;
if ($teacher->isDirty()) {
$new_data = $teacher->efirst;
$old_data = $teacher->getOriginal('efirst');
if ($teacher->save()) {
$teacher->update($request->except('qual_id', 'id', 'profile_pic'));
DB::table('teacher_logs')->insert(
[
'user_id' => $user->id,
'teacher_id' => $teacher->id,
'old_value' => $old_data,
'new_value' => $new_data,
]);
}
}
}
【问题讨论】:
-
你在说什么结果?
-
@lagbox 我想检查是否有任何字段被更改。
-
isDirty就是这样做的,检查模型的属性是否被修改 -
@lagbox 我这样做是为了检查上面代码中的一个字段,如果我有 5 个字段,我该怎么做?我将不得不输入每个?
-
你知道什么是批量赋值吗?并不是说粗鲁,只是在这里计算一些基线