版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33781658/article/details/85935536
beego信息与地址
func (this *GoodsController) ShowIndex(){
this.TplName="index.html"
}
我们可以从session中获取用户名
username := this.GetSession("username")
user := getUser(username.(string))
然后我们获取一下地址信息
o := orm.NewOrm()
var addr model.Address
o.QueryTable("Address").RelatedSel("User")
.Filter("User__Id",user.Id)
.Filter("Is_default",true)
.One(&addr)
然后我们需要展示一下数据
this.Data["add"] = addr
this.Data["userName"] = username
this.Layout = "layout.html"
this.TplName = "user_center_site.html"
看一下完整代码
username := this.GetSession("userName")//获取session数据
//根据用户名获取用户信息
o := orm.NewOrm()
user := models.User{Name:userName.(string)}
o.Read(&user,"Name")
//获取地址数据
var addr models.Address
o.QueryTable("Address").RelatedSel("User").Filter("User__Id",user.Id).Filter("Is_default",true).One(&addr)
//向视图中传递数据
this.Data["addr"] = addr
this.Data["userName"] = username
this.Layout = "layout.html"
this.TplName = "user_center_info.html"
有了layout.html之后,
就可以把index.html和user_center_info.html相同的部分删掉,
然后在渲染相应页面的地方加上如下代码:
userName := this.GetSession("userName")
if userName != nil{
this.Data["userName"] = userName.(string)
}else {
this.Data["userName"] = ""
}
this.Layout = "layout.html"//指定布局页面
this.TplName = "index.html"//显示主要页面
展示个人信息页的函数ShowCenterInfo中的代码改为:
username := this.GetSession("userName")
//根据用户名获取用户信息
user := GetUser(username.(string))
//获取地址数据
o:=orm.NewOrm()
var addr models.Address
o.QueryTable("Address").RelatedSel("User").Filter("User__Id",user.Id).Filter("Is_default",true).One(&addr)
//向视图中传递数据
this.Data["addr"] = addr
this.Data["userName"] = username
this.Layout = "layout.html"
this.TplName = "user_center_info.html"
订单页面也是需要登录之后才可以访问的
我们来写一下路由
beego.Router("/goods/UserController",&controllers.UserController{},"get:ShowCenterOrder")
然后设置布局
username := this.GetSession("userName")
this.Data["userName"] = username
this.Layout = "layout.html"//指定布局页面
this.TplName = "user_center_order.html"
然后我们需要搞一下路由
beego.Router("/goods/UserCenterSite",&controllers.UserController{},"get:ShowCenterSite;post:HandleCenterSite"
然后我们来获取地址
通过session来获取username
username := this.GetSession("userName")
//根据用户名获取用户信息
o := orm.NewOrm()
user := models.User{Name:userName}
o.Read(&user,"Name")
然后获取地址信息
var addr models.Address
o.QueryTable("Address").RelatedSel("User").Filter("User__Id",user.Id).Filter("Is_default",true).One(&addr)
然后展示一下地址
this.Data["add"] = addr
this.Data["userName"] = username
this.LayOut = "layout.html"//这里我们也套用了视图布局
this.TplName = "user_center_info.html"
然后我们看一下完整代码
username := this.GetSession("userName")//获取session数据
//根据用户名获取用户信息
o := orm.NewOrm()
user := models.User{Name:userName.(string)}
o.Read(&user,"Name")
//获取地址数据
var addr models.Address
o.QueryTable("Address").RelatedSel("User").Filter("User__Id",user.Id).Filter("Is_default",true).One(&addr)
//向视图中传递数据
this.Data["addr"] = addr
this.Data["userName"] = username
this.Layout = "layout.html"
this.TplName = "user_center_Site.html"
然后我们要处理一下添加地址
//获取session数据
username := this.GetSession("userName")
//根据用户名获取用户信息
user := GetUser(username.(string))
//获取传递的数据
name := this.GetString("receiverName")
address := this.GetString("address")
zipCode:=this.GetString("zipCode")
phoneNum:=this.GetString("phoneNum")
//数据校验
if name == ""||address==""||zipCode==""||phoneNum==""{
this.Data["errmsg"] = "添加地址数据不能为空"
this.TplName = "user_center_site.html"
return
}
//插入数据库
o := orm.NewOrm()
add := models.Address{}
//把原来的默认地址改为非默认地址
add.Is_default = true
err := o.Read(&add,"Is_default")
if err == nil{
add.Is_default = false
o.Update(&add)
}
add.User = &user
add.Addr = address
add.Phone = phoneNum
add.Receiver = name
add.Zip_code = zipCode
add.Is_default = true
_,err = o.Insert(&add)
if err != nil{
this.Data["errmsg"] = "插入地址信息错误"
this.TplName = "user_center_site.html"
return
}
this.Redirect("/goods/UserCenterSite",302)