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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容