goframe案例,goframe项目,GoFrame框架使用避坑指南和实践干货

goframe案例,goframe项目,GoFrame框架使用避坑指南和实践干货

本文主要介绍GoFrame框架的避坑指南和干货实践。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。

目录

gf gen dao可以设置参数而不传递model作为结构类型,使用with association代替join批量添加数据而不使用structure。主要节目如下:gomeGoods。维护定义:插入数据

gf gen dao

生成dao层的脚手架工具非常好用。我遇到的坑是这样的:

生成的dao文件与同事的不一致。生成的文件是成功的,但是相应的列是空的。虽然有这个方法,但是方法没有价值。我的版本略高于同事。我一直以为是这个原因,但是各种版本降级和同事一致后还是不行。

最后发现配置文件中连接的数据库是错误的。

无法获取列值,因为它未连接到数据库;但是,因为表名是在配置文件中规定的,所以文件是正常生成的。

好坑。

设置参数可不传

使用.界面{}

func GetXxx(xxx.接口{}) { }

model作为结构体类型

当我们的业务比较复杂,需要更新多个相关的表时,我们可以把需要修改的表定义成一个结构,而不是想一个模型处理一个模型。

这个想法比较好。把相关模型封装成一个结构就很清楚了,也可以避免任何遗漏。

类型GoodsRelevantItem struct {

商店*模型。商店

品牌*型号。商品品牌

desc *模型。商品描述

封面[]*型号。商品封面

属性[]*模型。商品属性

商品*型号。商品

DisCategory[]*型号。分类

}

使用with关联取值而不是join

可以与一起使用的必须与with with关联,而不是与join关联。

发现自己整理的栗子没有官网的好,所以大家还是看官方网吧:goframe.org/pages/viewp…

不使用结构体批量添加数据

Goframe非常灵活,插入的数据可以是结构也可以是图,也可以是图类型的切片,从而实现批量添加。

主程序如下:

//主图像转盘

Goodsimgs:=[] map [string]界面{ } { }//相册

对于k,img :=range gomeGoods。维护信息{

good img:=map[string]interface { } { }//图片

goodsImg[cover]=http: img

goodsImg[goods_id]=gconv。Int(goodsDetail[goods_id])

goodsImg[sort]=k

goodsImgs=append(goodsImgs,goodsImg)

}

//添加主图片

err=m.AddGoodsCover(ctx,tx,goodsImgs)

如果err!=零{

Err=错误。新建(未能添加商品主地图)

返回错误,0

}

gomeGoods.MainImgs的定义:

main imgs[]string ` JSON: main imgs

插入数据

批次指定在批次插入过程中一次插入的件数。

func(m * goodsMessageService)AddGoodsCover(CTX上下文。环境,tx *gdb。TX,goodsImgs g.List) (err error) {

如果len(goodsImgs)==0 {

返回错误。新建(“尚无数据”)

}

_,err=dao。GoodsCover.TX(tx)。Ctx(ctx)。Batch(len(goodsImgs))。插入(商品)

检查器(Err, UpdateGoodsCover )

返回

}

以上是GoFrame框架使用避坑和练习干货指南的详细内容。更多关于GoFrame框架的避坑干货,请关注我们的其他相关文章!

goframe案例,goframe项目,GoFrame框架使用避坑指南和实践干货