Skip to content

Commit 2c2bd70

Browse files
authored
🐛 fix: search type (#46)
1 parent 48ecca6 commit 2c2bd70

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

testdata/test.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,14 @@ fields:
77
creatable: true
88
updatable: false
99
readable: true
10-
Comment: ID
10+
comment: ID
11+
search: exact
1112
- name: name
1213
type: string
1314
size: 63
1415
creatable: true
1516
updatable: true
1617
readable: true
17-
Comment: 名称
18-
index: name_index
18+
comment: 名称
19+
index: name_index
20+
search: contains

virtual/model/model.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ func (m *Model) MakeModel() any {
7676
}
7777

7878
func (m *Model) MakeList() any {
79+
m.Init()
7980
fieldTypes := make([]reflect.StructField, 0)
8081
for i := range m.Fields {
8182
fieldTypes = append(fieldTypes, m.Fields[i].MakeField())
@@ -112,6 +113,9 @@ func (m *Model) Pagination(ctx *gin.Context, p PaginationImp) (f func(*gorm.DB)
112113
func (m *Model) Search(ctx *gin.Context) (f func(*gorm.DB) *gorm.DB) {
113114
return func(db *gorm.DB) *gorm.DB {
114115
for i := range m.Fields {
116+
if m.Fields[i].Search == "" {
117+
continue
118+
}
115119
v, ok := ctx.GetQuery(m.Fields[i].JsonTag)
116120
if !ok {
117121
continue

virtual/model/model_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ func TestModel_List(t *testing.T) {
304304
}
305305
// 创建一个虚拟的 HTTP 请求和响应
306306
w := httptest.NewRecorder()
307-
req, _ := http.NewRequest(http.MethodGet, "/test?pageSize=10&current=1", nil)
307+
req, _ := http.NewRequest(http.MethodGet, "/test?pageSize=10&current=1&name=test1", nil)
308308
r := gin.Default()
309309
r.GET("/test", func(ctx *gin.Context) {
310310
items := m.MakeList()

0 commit comments

Comments
 (0)