211-beego信息与地址

30 篇文章 1 订阅




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)










 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值