改进软删除 支持设置deleteTime属性关闭

This commit is contained in:
thinkphp
2018-01-15 16:09:14 +08:00
parent 12b30a4329
commit 92c961bb9e

View File

@@ -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;
}