mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-01 12:42:48 +08:00
改进软删除 支持设置deleteTime属性关闭
This commit is contained in:
@@ -19,7 +19,10 @@ trait SoftDelete
|
||||
{
|
||||
$field = $this->getDeleteTimeField();
|
||||
|
||||
return !empty($this->data[$field]);
|
||||
if ($field && !empty($this->data[$field])) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -42,7 +45,11 @@ trait SoftDelete
|
||||
$model = new static();
|
||||
$field = $model->getDeleteTimeField(true);
|
||||
|
||||
return $model->getQuery()->useSoftDelete($field, ['not null', '']);
|
||||
if ($field) {
|
||||
return $model->getQuery()->useSoftDelete($field, ['not null', '']);
|
||||
} else {
|
||||
return $model->getQuery();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -58,7 +65,7 @@ trait SoftDelete
|
||||
}
|
||||
|
||||
$name = $this->getDeleteTimeField();
|
||||
if (!$force) {
|
||||
if ($name && !$force) {
|
||||
// 软删除
|
||||
$this->data[$name] = $this->autoWriteTimestamp($name);
|
||||
$result = $this->isUpdate()->save();
|
||||
@@ -139,11 +146,15 @@ trait SoftDelete
|
||||
|
||||
$name = $this->getDeleteTimeField();
|
||||
|
||||
// 恢复删除
|
||||
return $this->getQuery()
|
||||
->useSoftDelete($name, ['not null', ''])
|
||||
->where($where)
|
||||
->update([$name => null]);
|
||||
if ($name) {
|
||||
// 恢复删除
|
||||
return $this->getQuery()
|
||||
->useSoftDelete($name, ['not null', ''])
|
||||
->where($where)
|
||||
->update([$name => null]);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -154,7 +165,8 @@ trait SoftDelete
|
||||
*/
|
||||
protected function base($query)
|
||||
{
|
||||
return $query->useSoftDelete($this->getDeleteTimeField(true));
|
||||
$field = $this->getDeleteTimeField(true);
|
||||
return $field ? $query->useSoftDelete($field) : $query;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -169,6 +181,10 @@ trait SoftDelete
|
||||
$this->deleteTime :
|
||||
'delete_time';
|
||||
|
||||
if (false === $field) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!strpos($field, '.')) {
|
||||
$field = '__TABLE__.' . $field;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user