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

标签 doctrine-orm doctrine

$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/

相关文章:

php - 如何将连接表合并到没有实体的学说查询中

symfony - 如何在 Symfony2 中优化 DQL 查询?

php - Doctrine 1.2 多对多关系的列命名约定

php - 有什么方法可以让我的所有 Controller 始终包含 symfony2 中的特定文件

doctrine-orm - Doctrine DBAL 查询生成器省略了一些连接

php - Symfony 按字段 OneToMany 排序实体

php - Doctrine2,setParameter 没有按预期工作

php - != 在 sql 中或 != 在 php 中

php - 声明 Doctrine Embeddable 是否可为空

Symfony2 表单和多态集合