php小編新一在使用GORM時,有時候會遇到一個問題:在尋找方法中,傳回的結果缺少某些欄位。這可能是因為我們在定義結構體時,沒有為該欄位新增標籤。在GORM中,透過使用標籤可以指定欄位在資料庫中的對應方式。因此,為了解決這個問題,我們需要為結構體中的每個欄位都添加正確的標籤,以確保在查詢時能夠正確傳回所有欄位的值。
嘗試使用GORM方法find取得資料庫表的值,但它沒有傳回所有欄位的值。 表結構是,
CREATE TABLE `company` ( `id` varchar(36) NOT NULL, `createdAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `updatedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `name` varchar(255) NOT NULL, `newId` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在company.go中,我們將公司結構定義為,
package entities import "time" type Company struct { Id string `json:"id" gorm:"column:id;primaryKey"` CreatedAt time.Time `json:"createdAt" gorm:"column:createdAt"` UpdatedAt time.Time `json:"updatedAt" gorm:"column:updatedAt"` Name string `json:"name" gorm:"column:name"` NewId string `json:"newId" gorm:"column:newId"` }
在控制器companys.go中,使用以下程式碼取得數據,
var companys []entities.Company result := db.Find(&companys) c.JSON(http.StatusOK, &result)
在郵差中,它只傳回欄位 name 和 id 的值。其餘欄位的值為空。可能是什麼問題?
我嘗試使用 GORM 的 find 方法來獲取所有字段,但它只給出兩個字段
表中的資料如下所示,
正如文件所述,createdAt
和updatedAt
是由GORM管理的,所以你可以留下gorm
標籤嗎?
以上是GORM 查找方法中缺少字段的詳細內容。更多資訊請關注PHP中文網其他相關文章!