本文整理汇总了Golang中github.com/qor/qor.Context.SetDB方法的典型用法代码示例。如果您正苦于以下问题:Golang Context.SetDB方法的具体用法?Golang Context.SetDB怎么用?Golang Context.SetDB使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/qor/qor.Context
的用法示例。
在下文中一共展示了Context.SetDB方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: callScopes
func (s *Searcher) callScopes(context *qor.Context) *qor.Context {
db := context.GetDB()
// call default scopes
for _, scope := range s.Resource.scopes {
if scope.Default {
db = scope.Handle(db, context)
}
}
// call scopes
for _, scope := range s.scopes {
db = scope.Handle(db, context)
}
// call filters
if s.filters != nil {
for key, value := range s.filters {
filter := s.Resource.filters[key]
if filter != nil && filter.Handler != nil {
db = filter.Handler(key, value, db, context)
} else {
db = DefaultHandler(key, value, db, context)
}
}
}
// add order by
if order_by := context.Request.Form.Get("order_by"); order_by != "" {
if regexp.MustCompile("^[a-zA-Z_]+$").MatchString(order_by) {
if field, ok := db.NewScope(s.Context.Resource.Value).FieldByName(strings.TrimSuffix(order_by, "_desc")); ok {
if strings.HasSuffix(order_by, "_desc") {
db = db.Order(field.DBName+" DESC", true)
} else {
db = db.Order(field.DBName, true)
}
}
}
}
// call search
var keyword string
if keyword = context.Request.Form.Get("keyword"); keyword == "" {
keyword = context.Request.URL.Query().Get("keyword")
}
if keyword != "" && s.Resource.SearchHandler != nil {
context.SetDB(s.Resource.SearchHandler(keyword, context).Debug())
return context
}
context.SetDB(db)
return context
}
示例2: callScopes
func (s *Searcher) callScopes(context *qor.Context) *qor.Context {
db := context.GetDB()
// call default scopes
for _, scope := range s.Resource.scopes {
if scope.Default {
db = scope.Handle(db, context)
}
}
// call scopes
for _, scope := range s.scopes {
db = scope.Handle(db, context)
}
// call filters
if s.filters != nil {
for key, value := range s.filters {
filter := s.Resource.filters[key]
if filter != nil && filter.Handler != nil {
db = filter.Handler(key, value, db, context)
} else {
db = DefaultHandler(key, value, db, context)
}
}
}
// add order by
if order_by := context.Request.Form.Get("order_by"); order_by != "" {
if regexp.MustCompile("^[a-zA-Z_]+$").MatchString(order_by) {
if strings.HasSuffix(order_by, "_desc") {
db = db.Order(strings.TrimSuffix(order_by, "_desc")+" DESC", true)
} else {
db = db.Order(order_by, true)
}
}
}
// call search
if keyword := context.Request.Form.Get("keyword"); keyword != "" {
if s.Resource.SearchHandler != nil {
context.SetDB(s.Resource.SearchHandler(keyword, context))
return context
}
}
context.SetDB(db)
return context
}
示例3: callScopes
func (s *Searcher) callScopes(context *qor.Context) *qor.Context {
db := context.GetDB()
// call default scopes
for _, scope := range s.Resource.scopes {
if scope.Default {
db = scope.Handle(db, context)
}
}
// call scopes
for _, scope := range s.scopes {
db = scope.Handle(db, context)
}
// call filters
if s.filters != nil {
for key, value := range s.filters {
filter := s.Resource.filters[key]
if filter != nil && filter.Handler != nil {
db = filter.Handler(key, value, db, context)
} else {
db = DefaultHandler(key, value, db, context)
}
}
}
context.SetDB(db)
// call search
if keyword := context.Request.Form.Get("keyword"); keyword != "" {
if s.Resource.SearchHandler != nil {
context.SetDB(s.Resource.SearchHandler(keyword, context))
}
}
return context
}