where('key',$where['key']); } $res = $model->field($field)->find();//员工信息 if($res){ $res = $res->toArray(); }else{ $res = []; } return $res; } /** * 对比新旧数据改变 * @param array $old_data 旧数据 * @param array $new_data 新数据 * @param array $ignoreFields 忽略验证的字段|默认[] * @return array */ public function compareData(array $old_data, array $new_data, array $ignoreFields = ['updated_at']) { $changedFields = [];//改了那些字段 $oldChanges = [];//数据修改前的样子 $newChanges = [];//数据修改后的样子 foreach ($new_data as $key => $value) { // 如果字段在忽略列表中,则跳过 if (in_array($key, $ignoreFields)) { continue; } if (!isset($old_data[$key]) || $old_data[$key] != $value) { $changedFields[] = $key; $oldChanges[$key] = $old_data[$key] ?? null; $newChanges[$key] = $value; } } return [ 'changed_fields' => $changedFields, 'old_values' => $oldChanges, 'new_values' => $newChanges, 'changed_fields_json' => json_encode($changedFields, JSON_UNESCAPED_UNICODE), 'old_values_json' => json_encode($oldChanges, JSON_UNESCAPED_UNICODE), 'new_values_json' => json_encode($newChanges, JSON_UNESCAPED_UNICODE) ]; } }