From da63bad9c8cef978ecbc5dd968d17a5e11e4028c Mon Sep 17 00:00:00 2001 From: Benjamin Eberlei Date: Mon, 13 Sep 2010 21:48:25 +0200 Subject: [PATCH] DDC-762 - Fixed notice when mapping foreign keys to field having null values --- lib/Doctrine/ORM/UnitOfWork.php | 2 +- .../ORM/Functional/Ticket/DDC522Test.php | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/Doctrine/ORM/UnitOfWork.php b/lib/Doctrine/ORM/UnitOfWork.php index 242d84b74..e3cd01568 100644 --- a/lib/Doctrine/ORM/UnitOfWork.php +++ b/lib/Doctrine/ORM/UnitOfWork.php @@ -1881,7 +1881,7 @@ class UnitOfWork implements PropertyChangedListener if ($assoc['isOwningSide']) { $associatedId = array(); foreach ($assoc['targetToSourceKeyColumns'] as $targetColumn => $srcColumn) { - $joinColumnValue = $data[$srcColumn]; + $joinColumnValue = isset($data[$srcColumn]) ? $data[$srcColumn] : null; if ($joinColumnValue !== null) { $associatedId[$targetClass->fieldNames[$targetColumn]] = $joinColumnValue; } diff --git a/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC522Test.php b/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC522Test.php index dbfa024ca..d0e8f4c7d 100644 --- a/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC522Test.php +++ b/tests/Doctrine/Tests/ORM/Functional/Ticket/DDC522Test.php @@ -65,6 +65,23 @@ class DDC522Test extends \Doctrine\Tests\OrmFunctionalTestCase $this->assertTrue($fkt2->cart instanceof \Doctrine\ORM\Proxy\Proxy); $this->assertFalse($fkt2->cart->__isInitialized__); } + + /** + * @group DDC-522 + * @group DDC-762 + */ + public function testJoinColumnWithNullSameNameAssociationField() + { + $fkCust = new DDC522ForeignKeyTest; + $fkCust->name = "name"; + $fkCust->cart = null; + + $this->_em->persist($fkCust); + $this->_em->flush(); + $this->_em->clear(); + + $newCust = $this->_em->find(get_class($fkCust), $fkCust->id); + } } /** @Entity */ @@ -94,7 +111,7 @@ class DDC522Cart { class DDC522ForeignKeyTest { /** @Id @Column(type="integer") @GeneratedValue */ public $id; - /** @Column(type="integer", name="cart_id") */ + /** @Column(type="integer", name="cart_id", nullable="true") */ public $cartId; /** * @OneToOne(targetEntity="DDC522Cart")