首页 > 后端开发 > Golang > 正文

GORM 查找方法中缺少字段

WBOY
发布: 2024-02-13 20:40:09
转载
1238 人浏览过

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 标签吗?

以上是GORM 查找方法中缺少字段的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:stackoverflow.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板