1.模型内定义了软删除–使用数据库删除无法进行真实删除数据
生成的sql语句如下–fetchsql也是一样
2.寻找原因
使用的是数据库删除–在idea使用ctrl追踪进入是model方法,错误!!!
一定要自己去一点一点点开数据库的delete方法 vendor\topthink\think-orm\src\db/builder/Mysql.php
$condition 如下图所示
$this->options[‘data’] 数据如下图所示
所以导致没有真实删除,且数据没有任何变化
3.解决方案
1.使用模型自带的destroy方法,配置true
2.自定义一个方法来修改option的soft_delete属性
public function realDel($where, $isForce = false) { list($field, $condition) = $this->getOptions('soft_delete'); //启用软删除 self::where($where)->setOption('soft_delete',[$field,time()])->delete(); //$this->setOption是不行的,必须要self修改 if ($isForce == true){ //启用实际删除 self::where($where)->setOption('soft_delete','')->delete(); } }
$where[] = ['id','=',768]; $count = $c->realDel($where);