Symfony使用FosUser将实体从一个实体管理器克隆到另一个实体管理器

时间:2017-10-01 23:49:10

标签: symfony doctrine fosuserbundle

我想将数据从一个数据库复制到另一个数据库。我从两个不同的实体经理(emLocal,emRemote)获得两个客户。

客户实体与FosUser处于oneToOne关系 刷新尝试插入空白用户。即使我尝试分离相关实体并将每个关系设置为null。

我从github读到,FosUserBundle不适用于两个实体管理器

        $remoteCustomer = $order->getCustomer();
        $onlineCustomer = $this->emLocal->getRepository("LilWorksStoreBundle:Customer")->findOneBy(array("remoteUser"=>$remoteCustomer->getUser()->getId()));
        if(!$onlineCustomer){
            $onlineCustomer = clone $remoteCustomer;

        }
        $this->emLocal->detach($onlineCustomer->getUser());
        $onlineCustomer->getUser()->setCustomer(null);
        $onlineCustomer->setUser(null);
        $this->emLocal->persist($onlineCustomer);
        $this->emLocal->flush();

如何阻止此INSERT?

1 个答案:

答案 0 :(得分:1)

我相信您应该使用其他Entity Manager来保存$onlineCustomer

$this->emOnline->persist($onlineCustomer);
$this->emOnline->flush();