getChangedData(); if (isset($changedData['setting']) || isset($changedData['name']) || isset($changedData['title']) || isset($changedData['ifsystem'])) { //判断字段名唯一性:同一模型、同一表侧(主表/附表)内唯一,允许主附表同名字段并存 if (ModelField::where('name', $row['name']) ->where('modelid', $row['modelid']) ->where('ifsystem', $row['ifsystem']) ->where('id', '<>', $row['id']) ->find()) { throw new Exception("字段'" . $row['name'] . "'已经存在"); } } cms_cache('ModelField', null); } //更新前 public static function onBeforeUpdate($row) { $changedData = $row->getChangedData(); if (isset($changedData['name']) || isset($changedData['setting'])) { if ($row['setting']['value'] === '') { $default = ''; } elseif (strstr(strtolower($row['setting']['define']), 'text') || strstr(strtolower($row['setting']['define']), 'blob')) { $default = ''; } else { $default = " DEFAULT '{$row['setting']['value']}'"; } $tablename = self::getModelTableName($row['modelid'], $row['ifsystem']); $sql = <<getOrigin('name')}` `{$row['name']}` {$row['setting']['define']} {$default} COMMENT '{$row['title']}'; EOF; try { Db::execute($sql); } catch (Exception $e) { throw new Exception($e->getMessage()); } } } //新增前 public static function onBeforeInsert($row) { if ($row['setting']['value'] === '') { $default = ''; } elseif (strstr(strtolower($row['setting']['define']), 'text') || strstr(strtolower($row['setting']['define']), 'blob')) { $default = ''; } else { $default = " DEFAULT '{$row['setting']['value']}'"; } $tablename = self::getModelTableName($row['modelid'], $row['ifsystem']); $sql = <<getMessage()); } } public static function onBeforeDelete($row) { $tablename = self::getModelTableName($row['modelid'], $row['ifsystem']); //判断是否允许删除 $sql = <<