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 网站上。

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

上一篇 下一篇
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 3

leirhy
有里有部分代码有问题,改成这样才对
3 个点赞 | 1 个回复 | 分享 | 课程版本 5.5
lawrencepu
全选那段代码可以不用 foreach
2 个点赞 | 0 个回复 | 分享 | 课程版本 5.8
战狼1991
商品总价
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.7