Doctrine 2 - ORM
  1. Doctrine 2 - ORM
  2. DDC-188

Collections are not hydrated properly

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Blocker Blocker
    • Resolution: Invalid
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Security Level: All
    • Labels:
      None

      Description

      The following example has User and Address entities, where User has many Addresses (ArrayCollection).

      http://pastebin.com/f1f065cb0

      $u = $em->find('Entity\User', $id);
      $addresses = $u->getAddresses();
      foreach ($addresses as $a) { }  // This line breaks!
      

      The script runs until the foreach loop, then it breaks with a fatal error:

      PHP Notice:  Undefined variable: owningAssoc in /home/kaiser/doctrine/doctrine/lib/Doctrine/ORM/Persist
      ers/StandardEntityPersister.php on line 545
      PHP Fatal error:  Uncaught exception 'Doctrine\ORM\ORMException' with message 'Unrecognized field: user
      Id' in /home/kaiser/doctrine/doctrine/lib/Doctrine/ORM/ORMException.php:14
      Stack trace:
      #0 /home/kaiser/doctrine/doctrine/lib/Doctrine/ORM/Persisters/StandardEntityPersister.php(660): Doctrin
      e\ORM\ORMException::unrecognizedField('userId')
      #1 /home/kaiser/doctrine/doctrine/lib/Doctrine/ORM/Persisters/StandardEntityPersister.php(545): Doctrin
      e\ORM\Persisters\StandardEntityPersister->_getSelectEntitiesSql(Array, NULL)
      #2 /home/kaiser/doctrine/doctrine/lib/Doctrine/ORM/Mapping/OneToManyMapping.php(133): Doctrine\ORM\Pers
      isters\StandardEntityPersister->loadOneToManyCollection(Array, Object(Doctrine\ORM\PersistentCollection
      ))
      #3 /home/kaiser/doctrine/doctrine/lib/Doctrine/ORM/PersistentCollection.php(244): Doctrine\ORM\Mapping\
      OneToManyMapping->load(Object(Entity\User), Object(Doctrine\ORM\PersistentCollection), Object(Doctrine\
      ORM\EntityManager))
      #4 /home/kaiser/doctrine/doctrine/lib/Doctrine/ORM/PersistentCollection.php(549): Doc in /home/kaiser/d
      octrine/doctrine/lib/Doctrine/ORM/ORMException.php on line 14
      

      If I uncomment the user creation code in my pastebin example (i.e. create User, Address first), it works as expected (assumingly because everything is in the EM already).

      So this bug probably breaks all select-only use cases with collections (which makes it a Blocker in my opinion).

        Activity

          People

          • Assignee:
            Roman S. Borschel
            Reporter:
            Nico Kaiser
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: