mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-05 22:52:49 +08:00
改进代码
This commit is contained in:
@@ -166,7 +166,8 @@ class Merge extends Model
|
||||
// 处理模型数据
|
||||
$data = $this->parseData($this->name, $this->data);
|
||||
|
||||
self::db()->startTrans();
|
||||
$db = self::db();
|
||||
$db->startTrans('merge_save_' . $this->name);
|
||||
try {
|
||||
if ($this->isUpdate) {
|
||||
// 自动写入
|
||||
@@ -177,15 +178,15 @@ class Merge extends Model
|
||||
}
|
||||
|
||||
// 写入主表数据
|
||||
$result = self::db()->strict(false)->update($data);
|
||||
$result = $db->strict(false)->update($data);
|
||||
|
||||
// 写入附表数据
|
||||
foreach (static::$relationModel as $key => $model) {
|
||||
$name = is_int($key) ? $model : $key;
|
||||
$table = is_int($key) ? self::db()->getTable($model) : $model;
|
||||
$table = is_int($key) ? $db->getTable($model) : $model;
|
||||
// 处理关联模型数据
|
||||
$data = $this->parseData($name, $this->data);
|
||||
$query = clone self::db();
|
||||
$query = clone $db;
|
||||
$query->table($table)->strict(false)->where($this->fk, $this->data[$this->getPk()])->update($data);
|
||||
}
|
||||
// 新增回调
|
||||
@@ -199,19 +200,19 @@ class Merge extends Model
|
||||
}
|
||||
|
||||
// 写入主表数据
|
||||
$result = self::db()->name($this->name)->strict(false)->insert($this->data);
|
||||
$result = $db->name($this->name)->strict(false)->insert($this->data);
|
||||
if ($result) {
|
||||
$insertId = self::db()->getLastInsID();
|
||||
$insertId = $db->getLastInsID();
|
||||
// 写入外键数据
|
||||
$this->data[$this->fk] = $insertId;
|
||||
|
||||
// 写入附表数据
|
||||
foreach (static::$relationModel as $key => $model) {
|
||||
$name = is_int($key) ? $model : $key;
|
||||
$table = is_int($key) ? self::db()->getTable($model) : $model;
|
||||
$table = is_int($key) ? $db->getTable($model) : $model;
|
||||
// 处理关联模型数据
|
||||
$data = $this->parseData($name, $this->data, true);
|
||||
$query = clone self::db();
|
||||
$query = clone $db;
|
||||
$query->table($table)->strict(false)->insert($data);
|
||||
}
|
||||
$result = $insertId;
|
||||
@@ -219,10 +220,10 @@ class Merge extends Model
|
||||
// 新增回调
|
||||
$this->trigger('after_insert', $this);
|
||||
}
|
||||
self::db()->commit();
|
||||
$db->commit('merge_save_' . $this->name);
|
||||
return $result;
|
||||
} catch (\PDOException $e) {
|
||||
self::db()->rollback();
|
||||
$db->rollback();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -237,25 +238,26 @@ class Merge extends Model
|
||||
if (false === $this->trigger('before_delete', $this)) {
|
||||
return false;
|
||||
}
|
||||
self::db()->startTrans();
|
||||
$db = self::db();
|
||||
$db->startTrans('merge_delete_' . $this->name);
|
||||
try {
|
||||
$result = self::db()->delete($this->data);
|
||||
$result = $db->delete($this->data);
|
||||
if ($result) {
|
||||
// 获取主键数据
|
||||
$pk = $this->data[$this->getPk()];
|
||||
|
||||
// 删除关联数据
|
||||
foreach (static::$relationModel as $key => $model) {
|
||||
$table = is_int($key) ? self::db()->getTable($model) : $model;
|
||||
$query = clone self::db();
|
||||
$table = is_int($key) ? $db->getTable($model) : $model;
|
||||
$query = clone $db;
|
||||
$query->table($table)->where($this->fk, $pk)->delete();
|
||||
}
|
||||
}
|
||||
$this->trigger('after_delete', $this);
|
||||
self::db()->commit();
|
||||
$db->commit('merge_delete_' . $this->name);
|
||||
return $result;
|
||||
} catch (\PDOException $e) {
|
||||
self::db()->rollback();
|
||||
$db->rollback();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user