之前我们也写过如何编辑地址,是单独创建了一个类似添加地址的界面,并且给这个界面单独设置了提交的路由,在这个路由中我们执行了和添加地址相似的操作,只是把最后的插入数据改成了更新数据.这里我们让编辑地址和增加地址共享同一个页面,通过隐藏输入框悄悄的回传地址的Id,如果Id不存在就新增,如果存在,也就是返回了地址的Id,说明这个地址已经存在了,就更改;这里要注意跳转控制器适用于返回地址对象的,但是提交地址和新增地址是一个控制器,所以要做判断,你到底是提交还是新增
0.逻辑注意点:
1.这里新增和修改共享同一个页面
value="{{or .userName .address.Receiver}}"
我们在新增页面回传的是userName,我们在修改界面由于是直接从数据库查询的地址返回的,所以要通过.address.属性访问,哪个不为空就显示哪个值
2.悄咪咪回传地址id
如果是新增地址,通过input的hidden类型悄悄的在前端回传地址id
3.在添加地址控制器中,添加获取id的语句,并且判断id是否为空,执行不同的操作
4.在界面显示默认状态,判断是否有address回传IsDefault,没有的话才执行根据回传的checked显示
5.获取地址id用的是string,不是int,是为了方便获取是否为""如果是int不好判断
1.语法注意点
1.o.Update(&address)后面不用指定根据什么字段查找更新数据,会报错
错误:c.Update(&address,"Id")
一.编辑地址逻辑代码
1.获取数据(url)
2.创建需要编辑的对象
3.查询需要编辑的对象
4.将查询结果回传给界面
image.png
二.共享添加/编辑地址界面
1.name回传用or语法返回两个控制器传过来的数据中不为空的
2.设置隐藏输入框窃听第一个控制器的数据传递到第二个控制器
3.设置url回传数据id
image.png
image.png
image.png
如果本来是默认地址就是默认,如果本来不是默认地址,根据当前编辑的状态确定是不是默认
image.png
三.共享添加/编辑地址控制器
1.接收地址id
2.判断地址id是否为""
3.为空代表插入地址
4.不为空更新地址
image.png
image.png
网友评论