在 foreach 里面做数据添加会不会不大好

在foreach里面做数据添加会不会不大好

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

@xstar5470 你觉得一个正常人的购物车里会超过 20 件商品吗?

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

有什么不好?

5年前 评论

@leo
$skuIds = collect($request->input('items'))->pluck('sku_id');
$skuItems = ProductSku::whereIn('id',$skuIds)->get()->keyBy('id')->toArray();
$orderItems = [];
foreach ($items as $data){
$item = $order->items()->make([
'amount' => $data['amount'],
'price' => $skuItems[$data['sku_id']]['price'],
]);
$item->product()->associate($skuItems[$data['sku_id']]['product_id']);
$item->productSku()->associate($data['sku_id']);
$orderItems[] = $item;
$totalAmount += $skuItems[$data['skuid']]['price'] * $data['amount'];
}
$order->items()->saveMany($orderItems);
这样写数据库压力不会那么大 批量查一次批量存一次 会不会好一些 库存量的减少要在下单时扣吗 如果付款成功后才扣除库存呢 这个搞不清楚该怎么处理 ^^

5年前 评论
木鱼 3年前
leo

@xstar5470 你觉得一个正常人的购物车里会超过 20 件商品吗?

5年前 评论

@leo 购物车是不会有太多东西,但是同一时间下单人数很多呢?

4年前 评论

@Noctis 好就是多个请求了,

4年前 评论

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