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中文网其他相关文章!