mirror of
https://github.com/zeromicro/go-zero.git
synced 2025-01-23 09:00:20 +08:00
RawFieldNames should ignore the field whose name is start with a dash (#2725)
This commit is contained in:
parent
affbcb5698
commit
683d793719
@ -45,9 +45,13 @@ func RawFieldNames(in interface{}, postgresSql ...bool) []string {
|
||||
// `db:"id"`
|
||||
// `db:"id,type=char,length=16"`
|
||||
// `db:",type=char,length=16"`
|
||||
// `db:"-,type=char,length=16"`
|
||||
if strings.Contains(tagv, ",") {
|
||||
tagv = strings.TrimSpace(strings.Split(tagv, ",")[0])
|
||||
}
|
||||
if tagv == "-" {
|
||||
continue
|
||||
}
|
||||
if len(tagv) == 0 {
|
||||
tagv = fi.Name
|
||||
}
|
||||
|
@ -39,3 +39,33 @@ func TestFieldNamesWithTagOptions(t *testing.T) {
|
||||
assert.Equal(t, expected, out)
|
||||
})
|
||||
}
|
||||
|
||||
type mockedUserWithDashTag struct {
|
||||
ID string `db:"id" json:"id,omitempty"`
|
||||
UserName string `db:"user_name" json:"userName,omitempty"`
|
||||
Mobile string `db:"-" json:"mobile,omitempty"`
|
||||
}
|
||||
|
||||
func TestFieldNamesWithDashTag(t *testing.T) {
|
||||
t.Run("new", func(t *testing.T) {
|
||||
var u mockedUserWithDashTag
|
||||
out := RawFieldNames(&u)
|
||||
expected := []string{"`id`", "`user_name`"}
|
||||
assert.Equal(t, expected, out)
|
||||
})
|
||||
}
|
||||
|
||||
type mockedUserWithDashTagAndOptions struct {
|
||||
ID string `db:"id" json:"id,omitempty"`
|
||||
UserName string `db:"user_name,type=varchar,length=255" json:"userName,omitempty"`
|
||||
Mobile string `db:"-,type=varchar,length=255" json:"mobile,omitempty"`
|
||||
}
|
||||
|
||||
func TestFieldNamesWithDashTagAndOptions(t *testing.T) {
|
||||
t.Run("new", func(t *testing.T) {
|
||||
var u mockedUserWithDashTagAndOptions
|
||||
out := RawFieldNames(&u)
|
||||
expected := []string{"`id`", "`user_name`"}
|
||||
assert.Equal(t, expected, out)
|
||||
})
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user