何时需要对查询数据进行封装

如题, 看了这一节封装的教程之后有点疑问

class CartController extends Controller
{
    .
    .
    .

    public function index(Request $request)
    {
        $cartItems = $this->cartService->get();
        $addresses = $request->user()->addresses()->orderBy('last_used_at', 'desc')->get();

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

这里的$cartItems = $this->cartService->get();为什么需要封装, 而OrderController中的Order数据的获取为什么不需要? 还是说只是作为演示用而已. 因为就代码复杂度来说$cartItems的获取也不复杂
希望大佬解答, 谢谢

Golx
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
leo
最佳答案

对于查询这种类型我一般不会封装,因为不好复用,网页端要的数据可能和 App 端要的数据并不一样,比如在手机端订单列表可能就不需要调用 with(['items.product', 'items.productSku']),因此 OrderController 的代码没有做封装。

而对于购物车这个场景来说,不太可能出现多端要的数据不一致的问题,因此就顺手做好封装。

5年前 评论
讨论数量: 1
leo

对于查询这种类型我一般不会封装,因为不好复用,网页端要的数据可能和 App 端要的数据并不一样,比如在手机端订单列表可能就不需要调用 with(['items.product', 'items.productSku']),因此 OrderController 的代码没有做封装。

而对于购物车这个场景来说,不太可能出现多端要的数据不一致的问题,因此就顺手做好封装。

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!