189-session操作和m2m操作
阿新 • • 發佈:2019-01-06
Cookie 和 session 作用: 一定時間內儲存使用者資料 儲存位置不同 Cookie儲存位置在客戶端 session儲存位置在伺服器 第二個不同 生命週期不同 Cookie能夠設定生存時間 當設定的時間一到的時候,就失效了 session是當瀏覽器關閉的時候 session就失效了 第三個不同 適用場景不同 Cookie 一般安全性要求不高的資料 session 安全性要求高的資料 //設定Cookie //1.cookie的key //2.cookie中存放的value //3.設定生效時間 this.Ctx.SetCookie("username",username,3600*24) func (this *UserController) ShowLogin(){ userName := } <input type="text" value="{{.userName}}" > 在登入成功的時候,可以給session設定資料 在進入後臺之前,需要查詢一下 session有沒有資料 如果有資料 說明是登入狀態 如果沒有資料 說明不是登入狀態 調回到登入頁面 this.SetSession("username",username); func (this *UserController) Logout(){ this.DelSession("userName") this.Redirect("/login",302) } 最近瀏覽人 點選文章之後,新增資料 m2m := o.QueryM2M(&article, "Users") var user models.User userName := this.GetSession("userName") user.UserName=userName.(string) o.Read(&user,"UserName") m2m.Add(user) this.Data["article"]=article 再來一次 //獲取m2m操作物件 m2m := o.QueryM2M(&article, "Users") //插入使用者物件 var user models.User userName := this.GetSession("userName") user.UserName = userName.(string) o.Read(&user, "UserName") //插入資料 m2m.Add(user) 現在我們在展示頁面的時候 要把最近瀏覽的user展示出來 //獲取瀏覽記錄 o.LoadRelated(&article,"Users") 還有第二種查詢方法 qs := o.QueryTable("User") qs.Filter("Users__User__UserName") qs := o.QueryTable("User") var users []models.User qs.Filter("Articles__Article__Id",article.Id).Distinct().All(&users) //資料傳遞給前端 this.Data["users"]=users