Fix panic when using Select/Omit Associations with no schema, close #3160

This commit is contained in:
Jinzhu 2020-07-17 15:49:41 +08:00
parent 6dc583869b
commit e77156980c
1 changed files with 5 additions and 3 deletions

View File

@ -503,7 +503,7 @@ func (stmt *Statement) SelectAndOmitColumns(requireCreate, requireUpdate bool) (
for _, dbName := range stmt.Schema.DBNames {
results[dbName] = true
}
} else if column == clause.Associations {
} else if column == clause.Associations && stmt.Schema != nil {
for _, rel := range stmt.Schema.Relationships.Relations {
results[rel.Name] = true
}
@ -517,8 +517,10 @@ func (stmt *Statement) SelectAndOmitColumns(requireCreate, requireUpdate bool) (
// omit columns
for _, omit := range stmt.Omits {
if omit == clause.Associations {
for _, rel := range stmt.Schema.Relationships.Relations {
results[rel.Name] = false
if stmt.Schema != nil {
for _, rel := range stmt.Schema.Relationships.Relations {
results[rel.Name] = false
}
}
} else if field := stmt.Schema.LookUpField(omit); field != nil && field.DBName != "" {
results[field.DBName] = false