Golang 布林值未在 PATCH 上偵測到
在Golang程式設計中,布林值未在PATCH上偵測到的問題是一個常見的錯誤。這個錯誤可能導致程式無法正常運作或產生意外的結果。 php小編百草在本文中將介紹這個問題的原因與解決方法,幫助讀者快速解決這個煩惱。無論您是初學者還是有經驗的開發者,本文都將為您提供有用的指導和建議,讓您的Golang程式碼更加健壯和可靠。
問題內容
我正在嘗試指示客戶端是否處於活動狀態的應用程式。 如果我手動將 clientactive 布林值設為 false,我可以成功將其轉換為 true。但如果為 true,則不會設為 false。 我正在使用 gofiber 和 gorm
模型/client.go
type client struct { gorm.model slug string `json:"slug" gorm:"unique"` clientname string `json:"client_name"` address string `json:"address,omitempty"` address2 string `json:"address_2,omitempty" gorm:"null"` phone string `json:"phone" gorm:"null"` primaryemail string `json:"primary_email" gorm:"null"` secondaryemail string `json:"secondary_email" gorm:"null"` clientactive bool `json:"client_active" gorm:"default:true"` contacts []contact devices []device }
處理程序/clienthandler.go
#func ClientUpdate(c \*fiber.Ctx) error { slug := c.Params("slug") var data models.Client err := c.BodyParser(&data) if err != nil { return err } // todo: the ClientActive variable will set as true, but never false client := &models.Client{ ClientName: data.ClientName, Address: data.Address, Address2: data.Address2, Phone: data.Phone, PrimaryEmail: data.PrimaryEmail, SecondaryEmail: data.SecondaryEmail, ClientActive: data.ClientActive, } err = database.DB.Model(&data).Where("slug = ?", slug).Updates(&client).Error if err != nil { return err } return c.JSON(client) }
所有其他行更新都沒有問題。唯一的問題是 clientactive 布林值。
完整程式碼可在 https://github.com/simpleittools/assetapi 取得
我已確認資料是以布林值形式發送的。我在資料庫輸入之前和之後都運行了 fmt.prtintln(client),它確實正確顯示為 false。
我在這個過程中沒有收到任何錯誤。
解決方法
對於定義預設值的字段,任何零值(例如 0、''、false)都不會保存到資料庫中,您可能需要使用指標類型或 scanner/valuer 來避免這種情況
透過將欄位類型變更為 *bool
進行修正:
type Client struct { ⋮ ClientActive *bool `json:"client_active" gorm:"default:true"` ⋮ }
以上是Golang 布林值未在 PATCH 上偵測到的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)