beego 的缓存如何转结构体呢?
写入缓存
func SetCategory(category models.Category) {
_ = BM.Put("category", category, 1000*time.Second)
}
但是获取的时候
func GetCategory() []models.Category {
category := BM.Get("category")
fmt.Println(category.([]models.Category))
return nil
}
这里无法转为结构体
有什么办法转呢?
func (c *CategoryController) Index() {
var category []models.Category
category = dao.GetCategory()
if category == nil {
m := new(models.Category)
category, _ = m.GetList()
dao.SetCategory(category)
}
c.Data["category"] = category
c.TplName = "admin/category/index.html"
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
存的时候用model.Category,转的时候用[]model.Category,类型都不相同,肯定不行。
建议把错误贴出来
声明下,我没用过 beego,按你的问题,看了下它的代码,并写了小例子测试了下。
可以先看下 Cache 接口定义:
Put 并不是理解的 list 追加,与 Get 的区别只是多了一个过期时间。所以,你 Put 的是啥,那 Get 就是啥。如果要获取的切片,那 Put 时也必须是切片。
目前用的办法为: