Laravelを使用してデータベース間でオーダーテーブルのデータを保存する必要があります。Laravelの別のデータベースからテーブルのデータを保存する方法は?
public function getMarketplace()
{
$orderoc = OrderOC::orderBy('oc_order.date_added', 'desc')
->join('oc_order_product', 'oc_order_product.order_id', 'oc_order.order_id')
->join('oc_order_history', 'oc_order_history.order_id', 'oc_order.order_id')
->where('oc_order_history.order_status_id', '=', '17')
->get();
foreach($orderoc as $oc){
$ordererp = new Order;
$ordererp->erp_createdid = $oc->created_id;
$ordererp->erp_marketplaceid = 1;
$ordererp->erp_site = rand(1,100000000);
$ordererp->erp_payment_method = $oc->payment_method;
$ordererp->erp_orderdate = $oc->date_added;
$ordererp->erp_orderaprove = $oc->date_added;
$ordererp->erp_billingid = 1;
$ordererp->erp_shippingid = 1;
$ordererp->erp_marketplace = 'Comércio Urbano';
$ordererp->erp_orderquantity = $oc->quantity;
$ordererp->erp_erro = '';
$ordererp->erp_product_ok = 1;
$ordererp->erp_compraId = null;
$ordererp->save();
if(strlen($oc->created_id) == 0){
$oc->created_id = rand(1,10000000);
$oc->save();
}
$orderprod = new OrderProduct;
$orderprod->erp_productid = $oc->product_id;
$orderprod->erp_createdid = $oc->created_id;
$orderprod->erp_model = $oc->model;
$orderprod->erp_quantity = $oc->quantity;
}
}
一つのテーブルには、私のERPからのものであり、他はOpenCartの購入を受信するための責任があるが、私は実行するたびに、同じ製品が私のためのテーブルに複数回表示されます。私はこのように私のコントローラ内の関数を作成しました。 (コントローラの機能でcreated_idが作成されているため、購入日時を確認することができます)
foreach内にデータを挿入するとデータが重複する理由を知りませんか?これは初めてではありません。私が仕事をするより堅牢な方法を教えれば、感謝しています。なにか提案を?前もって感謝します!
を受けるテーブルの上に
unique
検証を入れて、あなたはダブルチェック多分 '$のorderoc'は、件のデータを重複していることがありますか? 'dd($ orderoc)'を試して、もう一度チェックしてください。 –テーブル上で 'groupBy'または' unique'を使ってテーブルから重複したエントリを避けることができます –