getOrigin('score'); $after = $model->score; // 1. 只有当分数确实发生变化时才记录日志 if (bccomp($before, $after, 2) !== 0) { // 计算分值变动(after - before) $change = bcsub($after, $before); $userScoreLog = new UserScoreLog(); $userScoreLog->save([ 'user_id' => $model->user_id, 'game_type' => $model->game_type, 'before' => $before, 'after' => $after, 'score' => $change, 'memo' => '管理员手动调整', // 建议增加备注字段区分来源 ]); } } public function user(): BelongsTo { return $this->belongsTo(User::class, 'user_id'); } }