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