diff --git a/database/gdb/gdb_model.go b/database/gdb/gdb_model.go index 245398260..909103bf7 100644 --- a/database/gdb/gdb_model.go +++ b/database/gdb/gdb_model.go @@ -206,7 +206,7 @@ func (m *Model) As(as string) *Model { if m.tables != "" { model := m.getModel() split := " JOIN " - if gstr.Contains(model.tables, split) { + if gstr.ContainsI(model.tables, split) { // For join table. array := gstr.Split(model.tables, split) array[len(array)-1], _ = gregex.ReplaceString(`(.+) ON`, fmt.Sprintf(`$1 AS %s ON`, as), array[len(array)-1]) diff --git a/database/gdb/gdb_model_fields.go b/database/gdb/gdb_model_fields.go index 46d7af223..88d93ce8e 100644 --- a/database/gdb/gdb_model_fields.go +++ b/database/gdb/gdb_model_fields.go @@ -96,7 +96,7 @@ func (m *Model) GetFieldsStr(prefix ...string) string { if len(prefix) > 0 { prefixStr = prefix[0] } - tableFields, err := m.TableFields(m.tables) + tableFields, err := m.TableFields(m.tablesInit) if err != nil { panic(err) } @@ -164,7 +164,7 @@ func (m *Model) GetFieldsExStr(fields string, prefix ...string) string { // HasField determine whether the field exists in the table. func (m *Model) HasField(field string) (bool, error) { - tableFields, err := m.TableFields(m.tables) + tableFields, err := m.TableFields(m.tablesInit) if err != nil { return false, err } diff --git a/database/gdb/gdb_model_select.go b/database/gdb/gdb_model_select.go index cd39c4332..5da09222a 100644 --- a/database/gdb/gdb_model_select.go +++ b/database/gdb/gdb_model_select.go @@ -76,7 +76,7 @@ func (m *Model) getFieldsFiltered() string { panic("function FieldsEx supports only single table operations") } // Filter table fields with fieldEx. - tableFields, err := m.TableFields(m.tables) + tableFields, err := m.TableFields(m.tablesInit) if err != nil { panic(err) } diff --git a/database/gdb/gdb_model_utility.go b/database/gdb/gdb_model_utility.go index 7b1c36b60..4c6823850 100644 --- a/database/gdb/gdb_model_utility.go +++ b/database/gdb/gdb_model_utility.go @@ -47,7 +47,7 @@ func (m *Model) getModel() *Model { // ID -> id // NICK_Name -> nickname func (m *Model) mappingAndFilterToTableFields(fields []string, filter bool) []string { - fieldsMap, err := m.TableFields(m.tables) + fieldsMap, err := m.TableFields(m.tablesInit) if err != nil || len(fieldsMap) == 0 { return fields } @@ -201,7 +201,7 @@ func (m *Model) getLink(master bool) Link { // It parses m.tables to retrieve the primary table name, supporting m.tables like: // "user", "user u", "user as u, user_detail as ud". func (m *Model) getPrimaryKey() string { - table := gstr.SplitAndTrim(m.tables, " ")[0] + table := gstr.SplitAndTrim(m.tablesInit, " ")[0] tableFields, err := m.TableFields(table) if err != nil { return "" diff --git a/database/gdb/gdb_model_with.go b/database/gdb/gdb_model_with.go index 1fbd891d3..ea30abd39 100644 --- a/database/gdb/gdb_model_with.go +++ b/database/gdb/gdb_model_with.go @@ -39,7 +39,10 @@ func (m *Model) With(objects ...interface{}) *Model { model := m.getModel() for _, object := range objects { if m.tables == "" { - m.tables = m.db.GetCore().QuotePrefixTableName(getTableNameFromOrmTag(object)) + m.tablesInit = m.db.GetCore().QuotePrefixTableName( + getTableNameFromOrmTag(object), + ) + m.tables = m.tablesInit return model } model.withArray = append(model.withArray, object)