codecamp

GoFrame 链式操作-对象输入

Data/Where/WherePri/And/Or​方法支持任意的​string/map/slice/struct/*struct​数据类型参数,该特性为​gdb​提供了很高的灵活性。当使用​struct/*struct​对象作为输入参数时,将会被自动解析为​map​类型,只有​struct​的公开属性能够被转换,并且支持 ​orm/gconv/json​ 标签,用于定义转换后的键名,即与表字段的映射关系。

例如:

type User struct {
    Uid      int    `orm:"user_id"`
    Name     string `orm:"user_name"`
    NickName string `orm:"nick_name"`
}
// 或者
type User struct {
    Uid      int    `gconv:"user_id"`
    Name     string `gconv:"user_name"`
    NickName string `gconv:"nick_name"`
}
// 或者
type User struct {
    Uid      int    `json:"user_id"`
    Name     string `json:"user_name"`
    NickName string `json:"nick_name"`
}

其中,​struct​的属性应该是公开属性(首字母大写),​orm​标签对应的是数据表的字段名称。表字段的对应关系标签既可以使用​orm​,也可以用​gconv​,还可以使用传统的​json​标签,但是当三种标签都存在时,​orm​标签的优先级更高。为避免将​struct​对象转换为​JSON​数据格式返回时与​JSON​编码标签冲突,推荐使用​orm​标签来实现数据库​ORM​的映射关系。


GoFrame 模型关联-With特性
GoFrame 链式操作-字段过滤
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

GoFrame 核心组件

GoFrame 核心组件-数据库ORM

GoFrame 模块列表

GoFrame 模块列表-单元测试

GoFrame 模块列表-功能调试

GoFrame WEB服务开发

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }