【问题标题】:Doctrine Relations, Breaking ManyToMany when I clone an entity学说关系,当我克隆一个实体时打破了多对多
【发布时间】:2019-03-26 11:18:25
【问题描述】:

所以我正在创建一个学说实体,称为参展商。该实体与其他 2 个实体有关系,两者都是多对多关系。它们是报价和服务。

当我克隆参展商时,它还会克隆所有现有的报价和具有新 ID 的服务。

有什么方法可以防止关系克隆,我只想克隆 Exhibitor?

有人知道吗?

目前我只是在做

*   $newExhibitor = clone $exhibitor;
    $this->entityManager->getEntityManager()->persist($newExhibitor);
    $this->entityManager->getEntityManager()->flush();*

【问题讨论】:

    标签: php symfony doctrine-orm doctrine symfony-4.2


    【解决方案1】:

    为什么要克隆参展商?您的数据库中是否需要 2 个相同的参展商? 你有没有尝试在persist之前设置为null?:

    $newExhibitor = clone $exhibitor;
    $newExhibitor->setQuotes(null);
    $newExhibitor->setServices(null);
    $this->entityManager->getEntityManager()->persist($newExhibitor);
    $this->entityManager->getEntityManager()->flush();
    

    【讨论】:

    • 啊,是的,很简单,我没有这样做,而是做了一个 __clone() {} 方法,将属性设置为 null .. 和你建议的差不多。
    猜你喜欢
    • 2018-10-04
    • 2023-02-26
    • 2016-05-11
    • 2016-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多