卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章35595本站已运行397

GORM 查找方法中缺少字段

gorm 查找方法中缺少字段

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 方法获取所有字段,但它只给出两个字段

表中的数据如下所示,

解决方法

正如文档所述,createdAtupdatedAt是由GORM管理的,所以你可以留下 gorm 标签吗?

卓越飞翔博客
上一篇: 如何将接口转换为它实现的另一个接口?
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏