本文整理匯總了Golang中github.com/hjin-me/banana.Context.Params方法的典型用法代碼示例。如果您正苦於以下問題:Golang Context.Params方法的具體用法?Golang Context.Params怎麽用?Golang Context.Params使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/hjin-me/banana.Context
的用法示例。
在下文中一共展示了Context.Params方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: Post
func Post(ctx banana.Context) error {
err := Auth(ctx, PrivilegePostRead)
switch err {
case ErrNoPermit:
return err
case ErrNotLogin:
http.Redirect(ctx.Res(), ctx.Req(), "/login?error", http.StatusFound)
return nil
case nil:
default:
return err
}
var (
idStr string
ok bool
)
if idStr, ok = ctx.Params()["id"]; !ok {
panic("no id")
}
id, err := strconv.ParseInt(idStr, 10, 32)
if err != nil {
panic(err)
}
p := post.ReadRaw(int(id))
categories, err := category.Query()
if err != nil {
return err
}
layout := ThemeLayout{}
layout.Content = ThemeBlock{theme.CP("post"), struct{ Post, Categories interface{} }{p, categories}}
return ctx.Tpl(theme.CP("layout"), layout)
}
示例2: SavePost
func SavePost(ctx banana.Context) error {
err := Auth(ctx, PrivilegePostWrite)
switch err {
case ErrNoPermit:
return err
case ErrNotLogin:
return err
case nil:
default:
return err
}
var (
idStr string
ok bool
)
if idStr, ok = ctx.Params()["id"]; !ok {
panic("no id")
}
id, err := strconv.ParseInt(idStr, 10, 32)
if err != nil {
return err
}
r := ctx.Req()
cid, err := strconv.ParseInt(r.FormValue("category"), 10, 32)
if err != nil {
return err
}
p := post.New()
p.Id = int(id)
p.Title = r.FormValue("title")
p.Content = r.FormValue("content")
p.Category.Id = int(cid)
p.Description = r.FormValue("description")
p.Keywords.Parse(r.FormValue("keywords"))
err = p.Save()
if err != nil {
return err
}
return ctx.Json(p)
}
示例3: Category
func Category(ctx banana.Context) error {
c, ok := ctx.Params()["category"]
if !ok {
return errors.New("no category")
}
ps, err := post.QueryByCategory(c, 0, 10)
if err != nil {
return err
}
var ca = category.Category{}
if len(ps) > 0 {
ca = ps[0].Category
}
layout := ThemeLayout{}
layout.Content = ThemeBlock{theme.UI("category"), struct {
List []post.Post
Bread category.Category
}{ps, ca}}
return ctx.Tpl(theme.UI("layout"), layout)
}
示例4: Read
func Read(ctx banana.Context) error {
var (
idStr string
ok bool
)
if idStr, ok = ctx.Params()["id"]; !ok {
return errors.New("no id")
}
id, err := strconv.ParseInt(idStr, 10, 32)
if err != nil {
return err
}
x := post.Read(int(id))
if yearStr, ok := ctx.Params()["year"]; ok {
t, err := strconv.ParseInt(yearStr, 10, 32)
if err != nil {
return err
}
if int(t) != x.PubTime.Year() {
return errors.New("404")
}
}
if monthStr, ok := ctx.Params()["month"]; ok {
t, err := strconv.ParseInt(monthStr, 10, 32)
if err != nil {
return err
}
if int(t) != int(x.PubTime.Month()) {
return errors.New("404")
}
}
if dayStr, ok := ctx.Params()["day"]; ok {
t, err := strconv.ParseInt(dayStr, 10, 32)
if err != nil {
return err
}
if int(t) != x.PubTime.Day() {
return errors.New("404")
}
}
layout := ThemeLayout{}
layout.Content = ThemeBlock{theme.UI("post"), x}
return ctx.Tpl(theme.UI("layout"), layout)
}