Skip to content

DDC-455: E_NOTICE Undefined index when setting field to a property that is not persisted #4957

doctrinebot opened this Issue Mar 21, 2010 · 4 comments

1 participant


Jira issue originally created by user jakajancar:

Affects trunk.

A and B have a One-To-One mapping, with A being the owning side of the relationship. No cascade persist is set.

// Create entity A
$a = new A();

echo "Created A {$b->getId()}\n";

// Create B and add it to A
$b = new B();
//$em->persist($b); // oops, forgot


echo "Created B {$b->getId()}\n";

Expected: either throw an exception saying that A is attempting to reference an instance of B that is not persisted, or silently ignore the field.

Actual: Cryptic notice:

E_NOTICE (8): Undefined index: 0000000069d80795000000006ebfc57d (Doctrine/ORM/UnitOfWork.php:1903)


Comment created by @guilhermeblanco:

The issue you have is the same as if you use result cache. The entity is not managed by EM.
Maybe an "Entity of class " . get_class($entity) . " not managed by EntityManager." exception is the best solution here.



Comment created by @beberlei:

Given that the combination:

$hash = spl*object*hash($object);
return $this->somefoo[$hash];

is probably one of the most called constructs in the complete code I tend to disagree with a check on each and everyone of them. However i to see the tendency towards errors of this kind as annoying, but maybe we can catch them earlier in those spots where they occour most often?


Issue was closed with resolution "Fixed"

@doctrinebot doctrinebot added this to the 2.0-BETA3 milestone Dec 6, 2015
@doctrinebot doctrinebot closed this Dec 6, 2015
@doctrinebot doctrinebot added the Bug label Dec 7, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.