我在Gorm中做了一个简单的查询:
err := db.Preload("users").
Where("orders.created_at >= now() - interval 3 day").
Find(&orders).
Error
我也试过这种方式:
err := db.Select("orders.*, users.*").
Where("orders.created_at >= now() - interval 3 day and users.first_name != ''").
Joins("left join users on users.customer_id = orders.customer_id").
Find(&orders).
Error
这应该填充一个“订单”结构,其中有一个“用户用户”结构。当我记录我的查询时,它看起来很好,当我将其复制并粘贴到Phpmyadmin中时,它可以完美地工作,但是在Go中,我的结构是空的!井。。。“用户”部分为空。订单部分已正确填写。有谁知道我做错了什么?我的订单结构:
type Orders struct {
CustomerId int
Users Users `gorm:"foreignKey:customer_id"`
Method string
Amount float64
Subtotal float64
Total float64
Btw float64
Status string
OrderMailSend int
}
和我的用户结构:
type Users struct {
CustomerId int
Email string
FirstName string
LastName string
}
如果我使用我的第一个查询并调用它(在Go中),我将收到以下结果:
{
"CustomerId": 211197,
"Users": {
"CustomerId": 0,
"Email": "",
"FirstName": "",
"LastName": ""
},
"Method": "iDEAL",
"Amount": 10,
"Subtotal": 10,
"Total": 10,
"Btw": 0,
"Status": "paid",
"OrderMailSend": 0
}
以及错误:无法为模型预加载字段用户。订单
如果我只是将查询本身复制并粘贴到phpmyadmin控制台中并运行它,我确实会得到完整的结果,即一个订单,其中用户连接到它。所以这意味着查询本身是好的,我侦察。
在数据库中,订单表 (customer_id) 具有用户表的外键 (customer_id)。
忽然笑
相关分类