6.2. 查看购物车

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

查看购物车

上一节我们实现了将商品添加到购物车,本章节将要实现查看购物车中的商品。

1. 控制器

CartController 中添加 index() 方法:

app/Http/Controllers/CartController.php

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

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

with(['productSku.product']) 方法用来预加载购物车里的商品和 SKU 信息。如果这里没有进行预加载而是在渲染模板时通过 $item->productSku->product 这种懒加载的方式,就会出现购物车中的每一项都要执行多次商品信息的 SQL 查询,导致单个页面执行的 SQL 数量过多,加载性能差的问题,也就是经典的 N + 1 查询问题。使用了预加载之后,Laravel 会通过类似 select * from product_skus where id in (xxxx) 的方式把原本需要多条 SQL 查询的数...

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

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

上一篇 下一篇
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
贡献者:1
讨论数量: 23

leirhy
有里有部分代码有问题,改成这样才对
3 个点赞 | 1 个回复 | 分享 | 课程版本 5.5
lawrencepu
全选那段代码可以不用 foreach
2 个点赞 | 0 个回复 | 分享 | 课程版本 5.8
XFancy
购物车页面无法显示
1 个点赞 | 1 个回复 | 分享 | 课程版本 5.5
manbofish
不能把加入购物车的产品移出购物车
0 个点赞 | 6 个回复 | 问答 | 课程版本 5.7
wangxp
Call to undefined relationship [product] on model [App\Models\Product]?
0 个点赞 | 6 个回复 | 问答 | 课程版本 5.5
vasar
yarn add @fortawesome/Font Awesome-free 安装失败
0 个点赞 | 5 个回复 | 分享 | 课程版本 5.7
飞飞鱼
加载资源文件时,遇到自己的盲区错误
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.7
战狼1991
商品总价
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.7
lawrencepu
Neymar
关于预加载 with (['productSku.product']) 的格式问题
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.7
yandihuangdi
Console 报以下错误会影响吗?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.7
jingzhongwa
为什么删除购物车商品的时候不用给 where 传递 user->id???
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
uasemax
yarn add @fortawesome/Font Awesome-free 前面要加 sudo
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.7
yueruitao
关于购物车问题,应该优化勾选
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
jingzhongwa
无法删除购物车内容,无法传递 productSku 对象
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
SZL_
做到查看购物车这里报了错误
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.8
bing_
执行 $ Git status 后长得又跟老师的不一样
0 个点赞 | 1 个回复 | 分享 | 课程版本 5.8
zhuifeng9102
引入Bootstrap的购物车图标
0 个点赞 | 0 个回复 | 分享 | 课程版本 8.x
LunaNova
购物车页面实现总价计算,有需要的可以参考下
0 个点赞 | 0 个回复 | 分享创造 | 课程版本 8.x
shwfz01a
Heroku 上的网站不显示 Font Awesome 图标
0 个点赞 | 0 个回复 | 问答 | 课程版本 5.8