1 回答
TA贡献1805条经验 获得超10个赞
它没有很好的记录,但显然从会话中Flashes 删除了闪烁并返回它们:
func (s *Session) Flashes(vars ...string) []interface{} {
var flashes []interface{}
key := flashesKey
if len(vars) > 0 {
key = vars[0]
}
if v, ok := s.Values[key]; ok {
// Drop the flashes and return it.
delete(s.Values, key)
flashes = v.([]interface{})
}
return flashes
}
源代码在这里。
这里的解决方案是使用单独的变量来保存验证状态:
valid := true
if username == "" || len(username) < 4 {
valid = false
session.AddFlash("Username is too short")
session.Save(r, w)
}
// ...
if !valid {
// ...
} else {
// ...
}
编辑:另一种获取闪光灯而不删除它们的方法是Values直接从以下位置获取它们:
flashes := session.Values["_flash"].([]interface{})
- 1 回答
- 0 关注
- 147 浏览
添加回答
举报