From 82163a33011cdbd027f1985b9d8097b363218727 Mon Sep 17 00:00:00 2001 From: Jack Sleight Date: Wed, 14 Jan 2015 16:32:23 +0000 Subject: [PATCH] Include className in calls to NamingStrategy joinColumnName method. --- docs/en/reference/namingstrategy.rst | 4 ++-- lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php | 4 ++-- lib/Doctrine/ORM/Mapping/DefaultNamingStrategy.php | 2 +- lib/Doctrine/ORM/Mapping/NamingStrategy.php | 2 +- lib/Doctrine/ORM/Mapping/UnderscoreNamingStrategy.php | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/en/reference/namingstrategy.rst b/docs/en/reference/namingstrategy.rst index e1a29cd3e..9d82d8d8b 100644 --- a/docs/en/reference/namingstrategy.rst +++ b/docs/en/reference/namingstrategy.rst @@ -78,7 +78,7 @@ a "naming standard" for database tables and columns. * @param string $propertyName A property * @return string A join column name */ - function joinColumnName($propertyName); + function joinColumnName($propertyName, $className = null); /** * Return a join table name @@ -124,7 +124,7 @@ You need to implements NamingStrategy first. Following is an example { return 'id'; } - public function joinColumnName($propertyName) + public function joinColumnName($propertyName, $className = null) { return $propertyName . '_' . $this->referenceColumnName(); } diff --git a/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php b/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php index bbfae15f0..67567456c 100644 --- a/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php +++ b/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php @@ -1553,7 +1553,7 @@ class ClassMetadataInfo implements ClassMetadata if ( ! isset($mapping['joinColumns']) || ! $mapping['joinColumns']) { // Apply default join column $mapping['joinColumns'] = array(array( - 'name' => $this->namingStrategy->joinColumnName($mapping['fieldName']), + 'name' => $this->namingStrategy->joinColumnName($mapping['fieldName'], $this->name), 'referencedColumnName' => $this->namingStrategy->referenceColumnName() )); } @@ -1571,7 +1571,7 @@ class ClassMetadataInfo implements ClassMetadata } if (empty($joinColumn['name'])) { - $joinColumn['name'] = $this->namingStrategy->joinColumnName($mapping['fieldName']); + $joinColumn['name'] = $this->namingStrategy->joinColumnName($mapping['fieldName'], $this->name); } if (empty($joinColumn['referencedColumnName'])) { diff --git a/lib/Doctrine/ORM/Mapping/DefaultNamingStrategy.php b/lib/Doctrine/ORM/Mapping/DefaultNamingStrategy.php index 06bc593be..1e75f9794 100644 --- a/lib/Doctrine/ORM/Mapping/DefaultNamingStrategy.php +++ b/lib/Doctrine/ORM/Mapping/DefaultNamingStrategy.php @@ -69,7 +69,7 @@ class DefaultNamingStrategy implements NamingStrategy /** * {@inheritdoc} */ - public function joinColumnName($propertyName) + public function joinColumnName($propertyName, $className = null) { return $propertyName . '_' . $this->referenceColumnName(); } diff --git a/lib/Doctrine/ORM/Mapping/NamingStrategy.php b/lib/Doctrine/ORM/Mapping/NamingStrategy.php index 94938ccf2..843a39912 100644 --- a/lib/Doctrine/ORM/Mapping/NamingStrategy.php +++ b/lib/Doctrine/ORM/Mapping/NamingStrategy.php @@ -73,7 +73,7 @@ interface NamingStrategy * * @return string A join column name. */ - function joinColumnName($propertyName); + function joinColumnName($propertyName, $className = null); /** * Returns a join table name. diff --git a/lib/Doctrine/ORM/Mapping/UnderscoreNamingStrategy.php b/lib/Doctrine/ORM/Mapping/UnderscoreNamingStrategy.php index ec74373a8..543d92ba3 100644 --- a/lib/Doctrine/ORM/Mapping/UnderscoreNamingStrategy.php +++ b/lib/Doctrine/ORM/Mapping/UnderscoreNamingStrategy.php @@ -106,7 +106,7 @@ class UnderscoreNamingStrategy implements NamingStrategy /** * {@inheritdoc} */ - public function joinColumnName($propertyName) + public function joinColumnName($propertyName, $className = null) { return $this->underscore($propertyName) . '_' . $this->referenceColumnName(); }