[gogf/gf]orm希望有created_at, updated_at 表字段自动填充功能,新增软删除功能

2024-06-25 178 views
8

目前orm的表数据创建时间,更新时间都需要自己手动加入,不是很方便,另外,软删deleted_at这个功能也很有用,这个也没有,不知能不能加上,可以加个配置什么的自动支持,类似xorm

回答

4

我看你这个时间用的时间戳(整型的),如果我想用timestamp(“2019-09-12 19:32:02”)怎么办?目前我看主流的都是用的timestamp类型的,如果不统一,多语言,多框架用同一个数据库编程就很坑爹了

8

@trensy 哪里看到框架有限定时间限定是整形的时间戳?

8

一般我们公司都是用int10在数据库中存时间

0

@trensy 哪里看到框架有限定时间限定是整形的时间戳?

我是说这里面的代码

增加自动填充创建时间和更新时间的功能(gogf#464)

//自动填充时间
    var (
        createdAt int
        updatedAt int
    )
    if _, ok := data["created_at"]; ok {
        createdAt = gconv.Int(data["created_at"])
    }
    if m.db.GetAutoFillCreatedAt() && gconv.Int(createdAt) == 0 {
        data["created_at"] = gtime.Now().Unix()
    }
    if _, ok := data["updated_at"]; ok {
        createdAt = gconv.Int(data["updated_at"])
    }
    if m.db.GetAutoFillUpdatedAt() && gconv.Int(updatedAt) == 0 {
        data["updated_at"] = gtime.Now().Unix()
    }
2

或者可以加一个设置什么的

3

这个是我个人提交的PR,不是框架中的代码!我还没有想好要怎么处理是给时间戳还是timesatmp!

3

created_at 名字是否可自定义·目前如果在生产环境的话是已经有表了·例如create_time,并且可支持不同的数据类型

1

大家好,GF已经完成了创建时间、修改时间自动填充功能,以及软删除功能。当表中存在create_at/CreateAt, update_at/UpdateAt, delete_at/DeleteAt字段时将会自动启用相关功能,并且为约束使用,简化维护,这里的字段名称开发无法自定义,字段类型固定为时间类型如datetime, timestamp。目前已经提交到master分支测试中,预计下一个小版本发布。

5

为啥不支持int型呢?int存时间戳字段很常见的

3

整型做统计的效率会高点 支持整形就好了