public function update() { $monitorDB = new MonitorModelDB(); $updateArr = $whereArr = array(); $whereArr['id'] = $_GET['id']; $sql = "SELECT * FROM `" . $monitorDB->getTableName() . "` WHERE `id` = ?"; $row = $monitorDB->getRow($sql, array_values($whereArr)); $fieldArr = $monitorDB->getFields(); foreach ($fieldArr as $v) { if (in_array($v, array('id'))) { continue; } //跳过主键 if (array_key_exists($v, $_POST) && $_POST[$v] !== null) { $updateArr[$v] = $_POST[$v]; } } $changeNewRow = array_diff_assoc($updateArr, $row); //获取被修改字段数据 if (empty($changeNewRow)) { Message::showSucc('提交成功,数据无修改'); } $rs = $monitorDB->update($changeNewRow, $whereArr); //获取被修改数据写入日志 $changeOldRow = array_diff_assoc(array_diff_assoc($row, $updateArr), array_diff_key($row, $updateArr)); Log::write($this->adminUserName, $this->ip, $_GET['id'], self::$state . "__" . self::$action, $rs, Log::arrayToLog($changeOldRow)); //列表无刷新显示外键数据获取 if (isset($changeNewRow['group_id'])) { $changeNewRow['group_id'] = MonitorModel::getGroups($changeNewRow['group_id']); } //更新提示 $rs ? Message::showSucc('更新成功', $changeNewRow) : Message::showError('更新失败:' . implode(" ", $monitorDB->getErrorInfo())); }