## **数据删除自动处理**
数据删除同样也只需要一行代码`$this->_delete('表名');`
前端只需要传入数据表的主键就可以了,不需要做额外处理。
### **1. 硬删除**
如果数据表中不存在`is_deleted`字段,则为硬删除。
### **2. 软删除**
当前数据表中存在`is_deleted`字段时,`$this->_delete`则自动为软删除操作,
在列表操作时加上条件过滤下就可以正常操作。
#### 数据回调处理
对于数据删除的结果,可以进行自定义处理,回调函数规则如:`[_ACTION]_delete_result`
下面提供一个完整的demo:
```php
/**
* 删除系统权限
* @auth true
*/
public function remove()
{
$this->applyCsrfToken();
$this->_delete($this->table);
}
/**
* 删除结果处理
* @param boolean $result
* @throws \think\Exception
* @throws \think\exception\PDOException
*/
protected function _remove_delete_result($result)
{
if ($result) {
$where = ['auth' => $this->request->post('id')];
Db::name('SystemAuthNode')->where($where)->delete();
$this->success("权限删除成功!", '');
} else {
$this->error("权限删除失败,请稍候再试!");
}
}
```
如果是在 ThinkAdmin 后台基于 admin.js 的情况下,可台使用 data-action 来与 $this->_delete 配合使用。
前端提交上来的主键值支持多个,以英文逗号分隔。