TP 5.x 提供了丰富的数据模型和数据库操作的方法。 新添加了数据模型的实用的功能:软删除。
就是指定一个字段,用$deleteTime
来记录,默认不指定是delete_time。这个字段使用 NULL 来判断 record 有没有被标记。
如果在标记为软删除下情况下,要恢复标记为删除的 record 就不能不能直接赋值NULL 给update
save
,因为如果你直接赋值 (PHP)NULL,这个值就会被认为无效而被忽略, 不会对数据库的这个字段进行操作。
我记得上次,这个问题,我fuck了半天作者,现在.....
原始可靠性
解决的方式就是使用php 操作mysql的原始方法
...
$sql = 'update table '. $table_full_name ." set $deleteTime = NULL where id = $id";
$query = $this->handler->prepare($sql);
$rst = $query->execute()
....
exp操作
where方法中提供了操作为exp的形式。即
$query->where('delete_time', ['exp','null'])
但是save是没有提供的,save的参数是
$query->save([data],[conditional]);
其中的data赋值null,表示没有赋值,而不是把NULL写入数据库。