From d4249583d9104ea678ab1e78f9b40201f66cd546 Mon Sep 17 00:00:00 2001 From: Andreas Braun Date: Wed, 6 Nov 2019 14:03:07 +0100 Subject: [PATCH] Fix wrong handling of custom identifier names --- lib/Doctrine/ODM/MongoDB/Mapping/Driver/XmlDriver.php | 4 ++++ .../ODM/MongoDB/Tests/Mapping/AbstractMappingDriverTest.php | 6 +++--- ....MongoDB.Tests.Mapping.AbstractMappingDriverUser.dcm.xml | 2 +- ....MongoDB.Tests.Mapping.AbstractMappingDriverUser.dcm.yml | 1 + 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/Doctrine/ODM/MongoDB/Mapping/Driver/XmlDriver.php b/lib/Doctrine/ODM/MongoDB/Mapping/Driver/XmlDriver.php index b8cff1b0f8..8edb870bcd 100644 --- a/lib/Doctrine/ODM/MongoDB/Mapping/Driver/XmlDriver.php +++ b/lib/Doctrine/ODM/MongoDB/Mapping/Driver/XmlDriver.php @@ -159,6 +159,10 @@ public function loadMetadataForClass($className, ClassMetadata $class) $mapping[$key] = (string) $value; } + if (isset($attributes['field-name'])) { + $mapping['fieldName'] = (string) $attributes['field-name']; + } + if (isset($mapping['strategy'])) { $mapping['options'] = []; if (isset($field->{'generator-option'})) { diff --git a/tests/Doctrine/ODM/MongoDB/Tests/Mapping/AbstractMappingDriverTest.php b/tests/Doctrine/ODM/MongoDB/Tests/Mapping/AbstractMappingDriverTest.php index 6df5f080f8..8043c76f55 100644 --- a/tests/Doctrine/ODM/MongoDB/Tests/Mapping/AbstractMappingDriverTest.php +++ b/tests/Doctrine/ODM/MongoDB/Tests/Mapping/AbstractMappingDriverTest.php @@ -80,7 +80,7 @@ public function testDocumentLevelWriteConcern($class) public function testFieldMappings($class) { $this->assertCount(14, $class->fieldMappings); - $this->assertTrue(isset($class->fieldMappings['id'])); + $this->assertTrue(isset($class->fieldMappings['identifier'])); $this->assertTrue(isset($class->fieldMappings['version'])); $this->assertTrue(isset($class->fieldMappings['lock'])); $this->assertTrue(isset($class->fieldMappings['name'])); @@ -146,7 +146,7 @@ public function testStringFieldMappings($class) */ public function testIdentifier($class) { - $this->assertEquals('id', $class->identifier); + $this->assertEquals('identifier', $class->identifier); return $class; } @@ -402,7 +402,7 @@ class AbstractMappingDriverUser /** * @ODM\Id */ - public $id; + public $identifier; /** * @ODM\Version diff --git a/tests/Doctrine/ODM/MongoDB/Tests/Mapping/xml/Doctrine.ODM.MongoDB.Tests.Mapping.AbstractMappingDriverUser.dcm.xml b/tests/Doctrine/ODM/MongoDB/Tests/Mapping/xml/Doctrine.ODM.MongoDB.Tests.Mapping.AbstractMappingDriverUser.dcm.xml index 1576ad7fe4..78e2d1bea3 100644 --- a/tests/Doctrine/ODM/MongoDB/Tests/Mapping/xml/Doctrine.ODM.MongoDB.Tests.Mapping.AbstractMappingDriverUser.dcm.xml +++ b/tests/Doctrine/ODM/MongoDB/Tests/Mapping/xml/Doctrine.ODM.MongoDB.Tests.Mapping.AbstractMappingDriverUser.dcm.xml @@ -20,7 +20,7 @@ - + diff --git a/tests/Doctrine/ODM/MongoDB/Tests/Mapping/yaml/Doctrine.ODM.MongoDB.Tests.Mapping.AbstractMappingDriverUser.dcm.yml b/tests/Doctrine/ODM/MongoDB/Tests/Mapping/yaml/Doctrine.ODM.MongoDB.Tests.Mapping.AbstractMappingDriverUser.dcm.yml index 7a64e0d355..ed80cca3d4 100644 --- a/tests/Doctrine/ODM/MongoDB/Tests/Mapping/yaml/Doctrine.ODM.MongoDB.Tests.Mapping.AbstractMappingDriverUser.dcm.yml +++ b/tests/Doctrine/ODM/MongoDB/Tests/Mapping/yaml/Doctrine.ODM.MongoDB.Tests.Mapping.AbstractMappingDriverUser.dcm.yml @@ -17,6 +17,7 @@ Doctrine\ODM\MongoDB\Tests\Mapping\AbstractMappingDriverUser: fields: id: type: id + fieldName: identifier id: true version: type: int