[DDC-51] Notice: Undefined index: [columnName] in/Doctrine/ORM/Mapping/OneToManyMapping.php on line 129 Created: 15/Oct/09  Updated: 15/Oct/09  Resolved: 15/Oct/09

Status: Closed
Project: Doctrine 2 - ORM
Component/s: ORM
Affects Version/s: 2.0-ALPHA3
Fix Version/s: 2.0-ALPHA3
Security Level: All

Type: Bug Priority: Blocker
Reporter: Arthur Purnama Assignee: Roman S. Borschel
Resolution: Fixed Votes: 0
Labels: None
Environment:

« Hide
PHP 5.3.0 (cli) (built: Jul 21 2009 08:22:07)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies

Server Version: Apache/2.2.11 (Ubuntu) mod_jk/1.2.26 PHP/5.2.6-3ubuntu4.2 with Suhosin-Patch
Server Built: Aug 18 2009 14:26:31

mysql Ver 14.14 Distrib 5.1.31, for debian-linux-gnu (i486) using EditLine wrapper



 Description   

With the same example as DDC-50

i now can not get the ManyToOne association (definitions, proverbs and relations);

i got php notice
Notice: Undefined index: phrase_id in /usr/local/zend/apache2/htdocs/doctrine/lib/Doctrine/ORM/Mapping/OneToManyMapping.php on line 129

if i check the line the variable $joinColumnValues is an empty array, because the PersistentCollection.php at line 233 did not send any joincolumnvalues to the load method. i dont know if this the cause.

i have try to set $entityManager->getConfiguration()->setAllowPartialObjects() to TRUE and make an dql like this
"SELECT p, d FROM ".models\Phrase::CLASS_NAME." p join p.definitions d WHERE p.phrase = '$phrase'"

but the result is still the same



 Comments   
Comment by Roman S. Borschel [ 15/Oct/09 ]

Can you please show the code that you're using. I dont mean the models but the code that causes this problem.

Thanks.

Comment by Arthur Purnama [ 15/Oct/09 ]

$definitions = $phrase->getDefinitions();
var_dump($definitions[0] instanceof kateglo\application\models\Definition);

hope this help you.

regards,
arthur

Comment by Roman S. Borschel [ 15/Oct/09 ]

Okay, thanks, I can reproduce this and will work on this. When I'm done I will add all these new tests to the test suite.

Comment by Roman S. Borschel [ 15/Oct/09 ]

By the way, eager loading works fine for me. See this snippet:


        $query = $this->_em->createQuery("SELECT p,d FROM Doctrine\Tests\ORM\Functional\Phrase p JOIN p.definitions d");
        $res = $query->getResult();
        $definitions = $res[0]->getDefinitions();
        
        $this->assertEquals(1, count($res));
        $this->assertTrue($definitions[0] instanceof Definition);

This works for me. But lazy-loading results in the error you mentioned and which I will fix.

Comment by Arthur Purnama [ 15/Oct/09 ]

ok thank you very much it works like charm.

du bist Gold Wert Roman

please close the ticket.

Regards,
Arthur

Generated at Mon Oct 20 21:45:50 UTC 2014 using JIRA 6.2.3#6260-sha1:63ef1d6dac3f4f4d7db4c1effd405ba38ccdc558.