新手用beego遇到了问题,通过外键来查找数据显示查不到数据,卡在这个地方好几天了,各路大佬帮帮忙
建了两个表
```go
type User struct {
Id int `json:"user_id"` //用户id
Name string `orm:"size(11);unique" json:"name"` //用户名
Password string `orm:"size(30)" json:"password"` //用户密码
Uploads []*Upload `orm:"reverse(many)" json:"uploads"` //用户的上传信息
}
type Upload struct {
Id int `json:"upload_id"` //上传id
User *User `orm:"rel(fk)" json:"user_id"` //用户id
Picture_url string `orm:"size(255)" json:"picture_url"` //图片路径
Upload_date time.Time `orm:"type(datetime)" json:"upload_date"` //上传时间
}
```
通过下面代码来查找
```go
func (c *UploadController) Upload(){
//更新用户数据库的内容
uploads := []models.Upload{}
o := orm.NewOrm()
qs := o.QueryTable("Upload")
num, errfilter := qs.Filter("user__id",1).All(&uploads)
if num == 0{
beego.Info("+++++++++++++++++++++++++++++")
}
if errfilter != nil{
beego.Info("errfilter=",errfilter)
beego.Info("uploads:",uploads)
return
}
}
```
在user表里面也有数据
![image.png](https://static.studygolang.com/181102/2149a920bf75244a2a87344097979890)
而upload表是没有数据的,想要通过外键来查找并插入数据到upload表的
![image.png](https://static.studygolang.com/181102/4251ce98774bfa907e2345740cd2a1db)
可是最后报了错,说找不到字段,不知道什么原因
![image.png](https://static.studygolang.com/181102/51753dd5806967896f223ff23a11e298)
```
num, errfilter := o.QueryTable("Upload").Filter("User",1).RelatedSel().All(&uploads)
```
后来我改成这样,依旧还是报同样的错,怎么解决
#2
更多评论
如果你是要查用户ID的话试试这句:
`o.QueryTable("Upload").RelatedSel("User").Filter("User__Id",1).All(&uploads)`先关联表,然后再按字段查询,表名加字段名是两个下划线`User__Id`
#3