本篇文章為大家展示了使用goxorm無(wú)法對(duì)進(jìn)行值更新時(shí)如何解決,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
創(chuàng)新互聯(lián)公司專注于阿巴嘎網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供阿巴嘎?tīng)I(yíng)銷型網(wǎng)站建設(shè),阿巴嘎網(wǎng)站制作、阿巴嘎網(wǎng)頁(yè)設(shè)計(jì)、阿巴嘎網(wǎng)站官網(wǎng)定制、成都小程序開(kāi)發(fā)服務(wù),打造阿巴嘎網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供阿巴嘎網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。今天遇到個(gè)問(wèn)題,goxorm無(wú)法更新某一個(gè)字段為0.
xxTable := &models.XXTable{Visible: visible}
affected, err := eng.Where("id=?", id).Update(xxTable)
這種情況下,因?yàn)間o的結(jié)構(gòu)初始值都是各自的0值,所以xorm無(wú)法識(shí)別要更新結(jié)構(gòu)體中的哪個(gè)col,如下方法寫(xiě)可以正常解決。
xxTable := &models.XXTable{Visible: visible}
affected, err := eng.Where("id=?", id).Cols("visible").Update(xxTable)
補(bǔ)充:golang gin xorm注意事項(xiàng)
1. 無(wú)論是golang還是xorm中,在填寫(xiě)j'son字段時(shí),注意空格,比如 `json:"abcd "` `json:"abcd"`是不一樣的,不仔細(xì)對(duì)比會(huì)出錯(cuò)
2.當(dāng)結(jié)合gin框中的
c.JSON(http.StatusOK,gin.H{})操作
并且使用xorm中的join,find操作時(shí)(https://www.kancloud.cn/xormplus/xorm/167102)要注意如下現(xiàn)象,
假如定義兩個(gè)結(jié)構(gòu)體對(duì)應(yīng)兩個(gè)表
然后使用聯(lián)合查詢,先把兩個(gè)結(jié)構(gòu)體結(jié)合成一個(gè)結(jié)構(gòu)體,假如如下,在UserGroup中使用User和Group匿名結(jié)構(gòu)體,
那么當(dāng)我們使用gin的c.JSON(http.StatusOK,gin.H{"data":UserGroup})返回?cái)?shù)據(jù)時(shí)會(huì)導(dǎo)致Group和User中同名字段顯示不了,這應(yīng)該是gin和xorm的不是很兼容造成的(沒(méi)有深究),要解決這個(gè)問(wèn)題,好讓UserGroup中的User和Group不要以匿名結(jié)構(gòu)體的形式存在,可以改成
type UserGroup struct { MyUser User `xorm:"extends" json:"你要json中返回的名字"` MyGroup Group `xorm:"extends" json:"你要json中返回的名字"` }
上述內(nèi)容就是使用goxorm無(wú)法對(duì)進(jìn)行值更新時(shí)如何解決,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。