Lravel 5.4:根据值从会话插入记录

时间:2018-07-11 11:29:14

标签: php laravel session laravel-5.4

描述情况

我与3个供应商有一家商店,现在一个客户正在向这3个供应商提交订单,我想将记录作为每个供应商的单独订单列表插入。

例如,用户从supplier_1购买了2种产品,从supplier_2购买了3种产品,并且从supplier_3购买了1种产品。

对于带有2种产品的供应商1,我应该得到order_list_id,对于带有3种产品的供应商2,我应该得到order_list_id,依此类推...

当然每个订单都应拥有自己的order_details,例如order_lists_id

我的代码

首先这是我参加的会议

Collection {#618 ▼
  #items: array:2 [▼
    "7df867b1014da6bd376afe45dffc2f10" => CartItem {#620 ▼
      +rowId: "7df867b1014da6bd376afe45dffc2f10"
      +id: 99
      +qty: 1
      +name: "لونا supplier2"
      +price: 80.0
      +options: CartItemOptions {#619 ▼
        #items: array:8 [▼
          "image" => "1531213009.jpg"
          "details" => "50 ج تفاصيل للمنتج"
          "supplier_id" => 2
          "tax" => "5.00"
          "product_campaign_id" => ""
          "option_item_id" => null
          "option_item_name" => " "
          "flagCampaignLimitation" => false
        ]
      }
      -associatedModel: null
      -taxRate: "5.00"
    }
    "243dff87d51e88d00f4d5089a6a06f57" => CartItem {#621 ▼
      +rowId: "243dff87d51e88d00f4d5089a6a06f57"
      +id: 87
      +qty: 1
      +name: "أرز الوليمة"
      +price: 235.0
      +options: CartItemOptions {#622 ▼
        #items: array:8 [▼
          "image" => "1524140368.png"
          "details" => "الوزن: 40 كيلو جرام / العدد: 1"
          "supplier_id" => 1
          "tax" => "5.00"
          "product_campaign_id" => ""
          "option_item_id" => null
          "option_item_name" => " "
          "flagCampaignLimitation" => false
        ]
      }
      -associatedModel: null
      -taxRate: "5.00"
    }
  ]
}

本次会议有来自不同供应商的两种产品,在会议"supplier_id" => 1"supplier_id" => 2中看到

现在我要先插入order_list,然后再插入order_details

$orderList = ( new OrderList )->create( [
            'user_id'           => Auth::guard( 'web' )->user()->id,
            'order_state_id'    => 1,
            'address_id'        => $addressId,
            'customer_comments' => $request->customer_comments,
            'deliver_date'      => $request->deliver_date,
            'platform'          => 'Website'
        ] );
        $orderId   = $orderList->id;

        foreach ( $rows as $row ) {
            //---Add the order details
            $input['order_lists_id']  = $orderId;
            $input['product_id']      = $row->id;
            $input['supplier_id']     = $row->options->supplier_id;
            $input['product_name']    = $row->name;
            $input['product_details'] = $row->options->details;
            $input['price']           = $row->price;
            $input['quantity']        = $row->qty;
            $input['tax']             = $row->options->tax;
            $input['option_item_id']  = $row->options->option_item_id;
            ( new OrderDetail )->create( $input );
        }

仅需一个 order_list就能很好地完成此操作,并将详细信息插入order_details

我的问题是如何根据会话中不同的order_list插入supplier_id并通过order_lists_id插入与之相关的自己的详细信息?

0 个答案:

没有答案