我正在嘗試使用它從我的數據庫中獲取一組項目,gorm它工作正常,我能夠檢索數據,但我只在數組中獲取一個項目,而還有更多。這是我檢索數組的代碼。模型.gotype Address struct { ID uuid.UUID `json:"id" gorm:"primary_key;unique;not null"` Line string `gorm:"size:255;not null;column:line" json:"line"` Hostel string `gorm:"size:255;not null;column:hostel" json:"hostel"` CreatedAt time.Time `gorm:"default:CURRENT_TIMESTAMP;column:createdAt" json:"createdAt"` UpdatedAt time.Time `gorm:"default:CURRENT_TIMESTAMP;column:updatedAt" json:"updatedAt"` DeletedAt *time.Time `sql:"index;column:deletedAt" json:"deletedAt"`}type Addresses []Address數據庫.gotype DbAddress struct { *model.Address}func (address *DbAddress) Get(db *gorm.DB) ([]model.Address, *errors.Error) { var err error addr := []model.Address{} err = db.Debug().Model(model.Address{}).Limit(100).Take(&addr).Error if gorm.IsRecordNotFoundError(err) { return nil, errors.NewNotFoundError(fmt.Sprintf("Address not found: %s", err.Error())) } if err != nil { return nil, errors.NewBadRequestError(fmt.Sprintf("error when trying to get Address: %s", err.Error())) } return addr, nil}服務.gofunc GetAddress() (model.Addresses, *errors.Error) { result := database.DbAddress{Address: &model.Address{}} return result.Get(database.DB)}控制器.gofunc GetAddress(c *gin.Context) { address, getErr := services.GetAddress() if getErr != nil { res.ResponseJSON(c, getErr.Status, nil, true, getErr.Message) return } res.ResponseJSON(c, http.StatusFound, address, false, "successfully got address data")}
1 回答

交互式愛情
TA貢獻1712條經驗 獲得超3個贊
使用Find而不是Take.
// Get first record, order by primary key
db.First(&user)
//// SELECT * FROM users ORDER BY id LIMIT 1;
// Get one record, no specified order
db.Take(&user)
//// SELECT * FROM users LIMIT 1;
// Get last record, order by primary key
db.Last(&user)
//// SELECT * FROM users ORDER BY id DESC LIMIT 1;
// Get all records
db.Find(&users)
//// SELECT * FROM users;
// Get record with primary key (only works for integer primary key)
db.First(&user, 10)
//// SELECT * FROM users WHERE id = 10;
有關更多詳細信息,請參閱:https ://gorm.io/docs/query.html
- 1 回答
- 0 關注
- 82 瀏覽
添加回答
舉報
0/150
提交
取消