mirror of
https://github.com/tangpanqing/aorm.git
synced 2025-10-29 02:04:00 +08:00
init
This commit is contained in:
29
crud.go
29
crud.go
@@ -106,8 +106,8 @@ func (db *Executor) Find(obj interface{}) error {
|
|||||||
|
|
||||||
dest := reflect.ValueOf(obj).Elem()
|
dest := reflect.ValueOf(obj).Elem()
|
||||||
res := db.Limit(0, 1).selectArr()
|
res := db.Limit(0, 1).selectArr()
|
||||||
if len(res[0]) == 0 {
|
if len(res) == 0 {
|
||||||
return errors.New("找不到相关信息")
|
return errors.New("record not found")
|
||||||
}
|
}
|
||||||
|
|
||||||
for k, v := range res[0] {
|
for k, v := range res[0] {
|
||||||
@@ -436,8 +436,31 @@ func (db *Executor) Group(f string) *Executor {
|
|||||||
return db
|
return db
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Having 链式操作,以对象作为筛选条件
|
||||||
|
func (db *Executor) Having(dest interface{}) *Executor {
|
||||||
|
typeOf := reflect.TypeOf(dest)
|
||||||
|
valueOf := reflect.ValueOf(dest)
|
||||||
|
|
||||||
|
//如果没有设置表名
|
||||||
|
if db.TableName == "" {
|
||||||
|
arr := strings.Split(typeOf.String(), ".")
|
||||||
|
db.TableName = UnderLine(arr[len(arr)-1])
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < typeOf.Elem().NumField(); i++ {
|
||||||
|
isNotNull := valueOf.Elem().Field(i).Field(0).Field(1).Bool()
|
||||||
|
if isNotNull {
|
||||||
|
key := UnderLine(typeOf.Elem().Field(i).Name)
|
||||||
|
val := valueOf.Elem().Field(i).Field(0).Field(0).Interface()
|
||||||
|
db.HavingList = append(db.HavingList, WhereItem{Field: key, Opt: Eq, Val: val})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return db
|
||||||
|
}
|
||||||
|
|
||||||
// Having 链式操作,以数组作为筛选条件
|
// Having 链式操作,以数组作为筛选条件
|
||||||
func (db *Executor) Having(havingList []WhereItem) *Executor {
|
func (db *Executor) HavingArr(havingList []WhereItem) *Executor {
|
||||||
db.HavingList = havingList
|
db.HavingList = havingList
|
||||||
return db
|
return db
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user