1
votes
$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 {

    }
}

What the code does: It calls an function which returns an entity or null. If an entity was created there is an check if 2 values already exists in an array, if not, than persist and add the 2 values to an array as key/val pair.

But, when an entity is created and it already exists in the array i don't want it to be persisted, but I want to do nothing with it.

But, when I do absolutely zero with it I got the error: ```Multiple non-persisted new entities were found through the given association graph:

  • A new entity was found through the relationship 'MyCompany\Client\Entity\Client#something' that was not configured to cascade persist operations for entity:

which makes sense because doctrine doesn't know what to do with the created entity. How can I "destroy" the created entity so that the problem is solved.

When there is only 1 object created everything works fine.

1

1 Answers

0
votes

In your case you can simply merge or clear the entity from EntityManager

ex :

$em->merge($obj);

OR

$em->clear($obj);