[zeromicro/go-zero]goctl 模板能否多加个主键指令?

2024-01-17 700 views
4

自定义 CURD 模板时,希望能多加一个表示数据表主键的模板指令来自定义一些方法。

回答

7

举个例子哈

1

你好,我现在有两个用途。以下加粗的代码是没有模板指令可以用的。

一个是 postgres 插入数据后需要返回插入的 ID

query := fmt.Sprintf("insert into %s (%s) values ($1, $2, $3) returning **id**", m.table, appSettingRowsExpectAutoSet)
    var ret orm.Result
    err := m.conn.QueryRow(&ret, query, data.Name, data.Value, data.CreatedAt)
    return ret, err

另一个是只更新指定的列

func (m *defaultAppSettingModel) Updates(data AppSetting) error {
    // 只更新非零值字段,且忽略主键字段
    fields, values := orm.GetUpdateFieldValues(data, "", true, "id")
    query := fmt.Sprintf("update %s set %s where id = $1", m.table, fields)
    args := append([]interface{}{data.**Id**}, values)
    _, err := m.conn.Exec(query, args...)
    return err
}