mirror of
https://github.com/astaxie/beego.git
synced 2024-11-26 19:51:29 +00:00
Merge pull request #1450 from astaxie/revert-1439-master
Revert "Adding support for junction tables with other fields which arent FK and PK."
This commit is contained in:
commit
fb7314f8ac
@ -44,20 +44,7 @@ func (o *queryM2M) Add(mds ...interface{}) (int64, error) {
|
|||||||
dbase := orm.alias.DbBaser
|
dbase := orm.alias.DbBaser
|
||||||
|
|
||||||
var models []interface{}
|
var models []interface{}
|
||||||
var other_values []interface{}
|
|
||||||
var other_names []string
|
|
||||||
|
|
||||||
for _, colname := range mi.fields.dbcols {
|
|
||||||
if colname != mfi.column && colname != rfi.column && colname != fi.mi.fields.pk.column {
|
|
||||||
other_names = append(other_names, colname)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for i, md := range mds {
|
|
||||||
if reflect.Indirect(reflect.ValueOf(md)).Kind() != reflect.Struct && i > 0 {
|
|
||||||
other_values = append(other_values, md)
|
|
||||||
mds = append(mds[:i], mds[i+1:]...)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for _, md := range mds {
|
for _, md := range mds {
|
||||||
val := reflect.ValueOf(md)
|
val := reflect.ValueOf(md)
|
||||||
if val.Kind() == reflect.Slice || val.Kind() == reflect.Array {
|
if val.Kind() == reflect.Slice || val.Kind() == reflect.Array {
|
||||||
@ -80,9 +67,11 @@ func (o *queryM2M) Add(mds ...interface{}) (int64, error) {
|
|||||||
names := []string{mfi.column, rfi.column}
|
names := []string{mfi.column, rfi.column}
|
||||||
|
|
||||||
values := make([]interface{}, 0, len(models)*2)
|
values := make([]interface{}, 0, len(models)*2)
|
||||||
|
|
||||||
for _, md := range models {
|
for _, md := range models {
|
||||||
|
|
||||||
ind := reflect.Indirect(reflect.ValueOf(md))
|
ind := reflect.Indirect(reflect.ValueOf(md))
|
||||||
|
|
||||||
var v2 interface{}
|
var v2 interface{}
|
||||||
if ind.Kind() != reflect.Struct {
|
if ind.Kind() != reflect.Struct {
|
||||||
v2 = ind.Interface()
|
v2 = ind.Interface()
|
||||||
@ -92,11 +81,11 @@ func (o *queryM2M) Add(mds ...interface{}) (int64, error) {
|
|||||||
panic(ErrMissPK)
|
panic(ErrMissPK)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
values = append(values, v1, v2)
|
values = append(values, v1, v2)
|
||||||
|
|
||||||
}
|
}
|
||||||
names = append(names, other_names...)
|
|
||||||
values = append(values, other_values...)
|
|
||||||
return dbase.InsertValue(orm.db, mi, true, names, values)
|
return dbase.InsertValue(orm.db, mi, true, names, values)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user