Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
B
beego
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
go
beego
Commits
2c94d9ea
Commit
2c94d9ea
authored
Nov 25, 2015
by
astaxie
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1451 from gobenon/master
fix issue 1438 opened by Ayelet Regev
parents
235b5850
efd30bdb
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
4 deletions
+15
-4
orm_querym2m.go
orm/orm_querym2m.go
+15
-4
No files found.
orm/orm_querym2m.go
View file @
2c94d9ea
...
...
@@ -44,7 +44,20 @@ func (o *queryM2M) Add(mds ...interface{}) (int64, error) {
dbase
:=
orm
.
alias
.
DbBaser
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
{
val
:=
reflect
.
ValueOf
(
md
)
if
val
.
Kind
()
==
reflect
.
Slice
||
val
.
Kind
()
==
reflect
.
Array
{
...
...
@@ -67,11 +80,9 @@ func (o *queryM2M) Add(mds ...interface{}) (int64, error) {
names
:=
[]
string
{
mfi
.
column
,
rfi
.
column
}
values
:=
make
([]
interface
{},
0
,
len
(
models
)
*
2
)
for
_
,
md
:=
range
models
{
ind
:=
reflect
.
Indirect
(
reflect
.
ValueOf
(
md
))
var
v2
interface
{}
if
ind
.
Kind
()
!=
reflect
.
Struct
{
v2
=
ind
.
Interface
()
...
...
@@ -81,11 +92,11 @@ func (o *queryM2M) Add(mds ...interface{}) (int64, error) {
panic
(
ErrMissPK
)
}
}
values
=
append
(
values
,
v1
,
v2
)
}
names
=
append
(
names
,
other_names
...
)
values
=
append
(
values
,
other_values
...
)
return
dbase
.
InsertValue
(
orm
.
db
,
mi
,
true
,
names
,
values
)
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment