Merge 22a415df150de996c80840b9456b1669675853f0 into cb7c41e0b6e3863e7934a50c0aed76b8cfb61bfd
This commit is contained in:
commit
37b223bb50
@ -81,6 +81,7 @@ type StructField struct {
|
||||
Struct reflect.StructField
|
||||
IsForeignKey bool
|
||||
Relationship *Relationship
|
||||
Offset uintptr
|
||||
}
|
||||
|
||||
func (structField *StructField) clone() *StructField {
|
||||
@ -97,6 +98,7 @@ func (structField *StructField) clone() *StructField {
|
||||
TagSettings: map[string]string{},
|
||||
Struct: structField.Struct,
|
||||
IsForeignKey: structField.IsForeignKey,
|
||||
Offset: structField.Offset,
|
||||
}
|
||||
|
||||
if structField.Relationship != nil {
|
||||
@ -167,6 +169,7 @@ func (scope *Scope) GetModelStruct() *ModelStruct {
|
||||
Names: []string{fieldStruct.Name},
|
||||
Tag: fieldStruct.Tag,
|
||||
TagSettings: parseTagSetting(fieldStruct.Tag),
|
||||
Offset: fieldStruct.Offset,
|
||||
}
|
||||
|
||||
// is ignored field
|
||||
@ -210,6 +213,7 @@ func (scope *Scope) GetModelStruct() *ModelStruct {
|
||||
} else if _, ok := field.TagSettings["EMBEDDED"]; ok || fieldStruct.Anonymous {
|
||||
// is embedded struct
|
||||
for _, subField := range scope.New(fieldValue).GetModelStruct().StructFields {
|
||||
subField.Offset += fieldStruct.Offset
|
||||
subField = subField.clone()
|
||||
subField.Names = append([]string{fieldStruct.Name}, subField.Names...)
|
||||
if prefix, ok := field.TagSettings["EMBEDDED_PREFIX"]; ok {
|
||||
|
Loading…
x
Reference in New Issue
Block a user