6.4. 购物车下单页面

本教程最新版为 8.x,当前版本已放弃维护,请阅读最新版本!

完善购物车页面

我们已经实现了购物车页面展示商品,在实现下单功能之前我们还需要在页面上添加收货地址和备注信息的输入框。

首先需要在购物车页面里显示用户已有的收货地址列表,因此需要在控制器中获取并注入到模板中:

app/Http/Controllers/CartController.php

.
.
.
    public function index(Request $request)
    {
        $cartItems = $request->user()->cartItems()->with(['productSku.product'])->get();
        $addresses = $request->user()->addresses()->orderBy('last_used_at', 'desc')->get();

        return view('cart.index', ['cartItems' => $cartItems, 'addresses' => $addresses]);
    }
.
.
.

通常来说用户重复使用最近用过的地址概率比较大,因此我们在取地址的时候根据 last_used_at 最后一次使用时间倒序排序,这样用户体验会好一些。

然后在购物车页面加入地址选择框和备注框,放到之前商品列表的 <table> 标签下面:

resources/views/cart/index.blade...

本文章首发在 LearnKu.com 网站上。

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
贡献者:1
讨论数量: 55

郎中航
处理购物商品流程图
11 个点赞 | 5 个回复 | 分享 | 课程版本 5.5
phpzc
order 表中 address 的 JSON 保存格式 如何变为 JSON_UNESCAPED_UNICODE
2 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
18865477815
为什么 decreaseStock 需要用 where 来判断 id? 而 addStock 不需要呢
1 个点赞 | 5 个回复 | 问答 | 课程版本 7.x
这段代码是否能换成这种写法呢 / 帮忙看下 谢谢
1 个点赞 | 5 个回复 | 问答 | 课程版本 5.7
surest
associate 的意义?
1 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
张无忌
这块的参数不是很明白
1 个点赞 | 4 个回复 | 问答 | 课程版本 5.8
zhaiduting
$order->items ()->make ([...]) 的疑问
1 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
dptms
是不是应该加上 `optional ($sku)`?
1 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
$input ['items'] 报错,$items 就行了 ?
1 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
echopeimeng
大家写代码的流程
1 个点赞 | 2 个回复 | 分享 | 课程版本 5.8
circle
是不是应该加个 JSON_encode ()?
1 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
hehorange
newQuery () 和 query () 有什么不同?
1 个点赞 | 1 个回复 | 问答 | 课程版本 5.7
hehorange
无法提交,总是超时
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.7
xstar5470
在 foreach 里面做数据添加会不会不大好
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
ross
用 $this->newQuery () 就可以创建一个查询构造器?
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
kcersing
这边加个计算运费会更好些
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.8
夏天
提交订单出错
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.7
jingzhongwa
关于数据库事物隔离级别的问题
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
silasyao
请问这个 store 方法里为什么 有 2 个 return $order;
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
admi2u
商品减库存的两种方式问题?
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
heibai_2018
生成订单时,返回订单碰时一些不太理解的地方
0 个点赞 | 3 个回复 | 分享 | 课程版本 5.8
提交订单报错
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.7
Sw-A
关于前文中 update 修改问题
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.7
Flourishing
老师,事物回滚后,返回值是什么?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
王鲸弋
已经有购物车表了,为什么还要通过 amount 来创建订单呢?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
任飘渺
创建订单这里order_id 关联的ID找不到是怎么回事?
0 个点赞 | 2 个回复 | 问答 | 课程版本 7.x
虚妄
提交订单的 SQL 执行条数&逻辑
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.7
LeePeng
提交订单报错
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.8
sufan
throw InvalidRequestException 怎么不跳转到异常页面了?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.8
Neymar
关于 $skuIds = collect ($items)->pluck ('sku_id');的问题
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.8
周小云
有行代码的判断是不是欠妥
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
dptms
多商家订单该如何处理?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.7
jackzheng9969
不知道哪里报错了 ,卡在这里过不去了
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.7
BV
请问 orderrequest 里面的 address _id 是怎么来的?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
刘天承
这个 var $checkbox 语法是否有错误?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
wl1524520
创建订单时 total_amount 返回数值和数据库中数值不同
0 个点赞 | 1 个回复 | 问答 | 课程版本 8.x
fourn
建议删除评论
0 个点赞 | 1 个回复 | 分享 | 课程版本 6.x
666666
课程 L05 订单页面 $input.val () 为 undifined 这是为什么?
0 个点赞 | 1 个回复 | 问答 | 课程版本 6.x
虚妄
更新时间真的有必要这么复杂嘛?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.7
瀚海栏杆
关于超卖问题
0 个点赞 | 1 个回复 | 分享 | 课程版本 5.5
dmdoit
关于 make , $item = $order->items ()->make ()
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.7
myhyperion
axios 结束后是否需要加上 return false?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
坐忘
下单完成后是不是要跳转到订单页面?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
AmberLavigne
创建订单地址信息的疑惑?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
赤色圣战
一个订单提交了商品数量是 10000,报错了,似乎是数太大
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
提交订单出错 ?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
XinYangWang
用户输入信息验证不通过时,给出明确提示
0 个点赞 | 0 个回复 | 分享创造 | 课程版本 8.x
MArtian
请教关于乐观锁极端情况的处理方式?
0 个点赞 | 0 个回复 | 问答 | 课程版本 8.x
lvtian
错误解决
0 个点赞 | 0 个回复 | 分享 | 课程版本 5.8
sunkai
系统错误?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5