美文网首页
ThinkPHP 5.x 设置字段为 NULL

ThinkPHP 5.x 设置字段为 NULL

作者: 喷射的熔浆 | 来源:发表于2017-08-30 04:43 被阅读0次

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

      本文链接:https://www.haomeiwen.com/subject/vrkzdxtx.html