beego/beego · error
field `%s` wrong rel_through value `%s` cannot find table
Error message
field `%s` wrong rel_through value `%s` cannot find table
What it means
Error "field `%s` wrong rel_through value `%s` cannot find table" thrown in beego/beego.
Source
Thrown at client/orm/internal/models/models.go:140
elm = elm.Elem()
}
// check the rel or reverse model already Register
name := GetFullName(elm)
mii, ok := mc.GetByFullName(name)
if !ok || mii.Pkg != elm.PkgPath() {
err = fmt.Errorf("can not find rel in field `%s`, `%s` may be miss Register", fi.FullName, elm.String())
goto end
}
fi.RelModelInfo = mii
switch fi.FieldType {
case RelManyToMany:
if fi.RelThrough != "" {
if i := strings.LastIndex(fi.RelThrough, "."); i != -1 && len(fi.RelThrough) > (i+1) {
pn := fi.RelThrough[:i]
rmi, ok := mc.GetByFullName(fi.RelThrough)
if !ok || pn != rmi.Pkg {
err = fmt.Errorf("field `%s` wrong rel_through value `%s` cannot find table", fi.FullName, fi.RelThrough)
goto end
}
fi.RelThroughModelInfo = rmi
fi.RelTable = rmi.Table
} else {
err = fmt.Errorf("field `%s` wrong rel_through value `%s`", fi.FullName, fi.RelThrough)
goto end
}
} else {
i := NewM2MModelInfo(mi, mii)
if fi.RelTable != "" {
i.Table = fi.RelTable
}
if v := mc.Set(i.Table, i); v != nil {
err = fmt.Errorf("the rel table name `%s` already registered, cannot be use, please change one", fi.RelTable)
goto end
}
fi.RelTable = i.TableView on GitHub (pinned to 939cfde380)
When it happens
Trigger: Thrown at client/orm/internal/models/models.go:140 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of beego/beego@939cfde380 (2026-08-15).
Data as JSON: /api/errors/e57b36b5f86e34dd.
Report an issue: GitHub.