我需要通过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;
}
}一个表来自我的企业资源规划,另一个负责接收OpenCart采购,但每次我运行时,相同的产品在我的订单表中出现不止一次。(可以看到购买日期,因为created_id是在控制器功能中创建的)
有人知道如何告诉我为什么在foreach中插入数据时会复制数据吗?这已经不是第一次了,如果你告诉我一种更健壮的方式来做这项工作,我会很感激。有什么建议吗?提前谢谢你!

发布于 2017-06-24 02:42:32
一种可能的方法是对接收数据的表进行unique验证
https://stackoverflow.com/questions/44727844
复制相似问题