ThinkPHP 5.x 设置字段为 NULL

TP 5.x 提供了丰富的数据模型和数据库操作的方法。 新添加了数据模型的实用的功能:软删除。
就是指定一个字段,用$deleteTime来记录,默认不指定是delete_time。这个字段使用 NULL 来判断 record 有没有被标记。
如果在标记为软删除下情况下,要恢复标记为删除的 record 就不能不能直接赋值NULLupdate 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写入数据库。

Reference

  1. thinkPHP5.x 更新字段为 NULL

你可能感兴趣的:(ThinkPHP 5.x 设置字段为 NULL)