class->function($data, $par2); -6ren">
gpt4 book ai didi

doctrine-orm - Doctrine ORM "Multiple non-persisted new entities were found through the given association graph:"

转载 作者:行者123 更新时间:2023-12-05 07:27:57 33 4
gpt4 key购买 nike

$added_obj = []; 
foreach ($something as $data) {
$obj = $this->class->function($data, $par2);

if (null !== $obj && !(array_key_exists
(->getVal1(), $added_obj[$obj->getVal1()] === $$obj->getVal2())) {
$this->persister->persist($obj);
$added_bank_account[$obj->getVal1()] = $obj->getVal2();
} else {

}
}

代码的作用:它调用一个返回实体或 null 的函数。如果创建了实体,则会检查数组中是否已存在 2 个值,如果不存在,则保留并将这 2 个值作为键/值对添加到数组中。

但是,当一个实体被创建并且它已经存在于数组中时,我不希望它被持久化,但我不想对它做任何事情。

但是,当我用它绝对为零时,我得到了错误:```通过给定的关联图发现了多个非持久化的新实体:

  • 通过关系“MyCompany\Client\Entity\Client#something”找到了一个新实体,该实体未配置为级联实体的持久操作:

这是有道理的,因为 Doctrine 不知道如何处理创建的实体。我怎样才能“销毁”创建的实体以便解决问题。

当只有 1 个对象创建时一切正常。

最佳答案

在您的情况下,您可以简单地从 EntityManager

mergeclear entity

例如:

$em->merge($obj);

$em->clear($obj);

关于doctrine-orm - Doctrine ORM "Multiple non-persisted new entities were found through the given association graph:",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53672292/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com