Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在Laravel中保存来自另一个数据库的表中的数据?_Mysql_Laravel - Fatal编程技术网

Mysql 如何在Laravel中保存来自另一个数据库的表中的数据?

Mysql 如何在Laravel中保存来自另一个数据库的表中的数据?,mysql,laravel,Mysql,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

我需要通过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中插入数据时会复制数据吗?这已经不是第一次了,如果你能告诉我一种更有效的工作方法,我很感激。有什么建议吗?提前谢谢你


一种可能性是您在接收数据的表上放置
唯一的
验证

,因此我考虑过这一点,但由于创建的id是在foreach内部生成的,因此它可能会重新生成,具有相同的特征,我希望OpenCart提供一些id来促进这些实现。无论如何,我会试着把它放在一张单独的桌子上,我相信它效果更好。(Aliás,sou Parananse também)你有没有仔细检查一下,
$orderoc
是否有重复的数据?请尝试
dd($orderoc)
并再次检查。您可以在表上使用
groupBy
unique
,以避免join中的重复条目