1
0
mirror of synced 2024-12-15 07:36:03 +03:00

Merge branch 'DDC-961'

This commit is contained in:
Benjamin Eberlei 2010-12-30 22:30:59 +01:00
commit 7a40e3f6f2
2 changed files with 23 additions and 2 deletions

View File

@ -836,8 +836,17 @@ class ClassMetadataInfo
{ {
$mapping = $this->_validateAndCompleteAssociationMapping($mapping); $mapping = $this->_validateAndCompleteAssociationMapping($mapping);
if ($mapping['isOwningSide']) { if ($mapping['isOwningSide']) {
if (strpos($mapping['sourceEntity'], '\\') !== false) {
$sourceShortName = strtolower(substr($mapping['sourceEntity'], strrpos($mapping['sourceEntity'], '\\') + 1)); $sourceShortName = strtolower(substr($mapping['sourceEntity'], strrpos($mapping['sourceEntity'], '\\') + 1));
} else {
$sourceShortName = strtolower($mapping['sourceEntity']);
}
if (strpos($mapping['targetEntity'], '\\') !== false) {
$targetShortName = strtolower(substr($mapping['targetEntity'], strrpos($mapping['targetEntity'], '\\') + 1)); $targetShortName = strtolower(substr($mapping['targetEntity'], strrpos($mapping['targetEntity'], '\\') + 1));
} else {
$targetShortName = strtolower($mapping['targetEntity']);
}
// owning side MUST have a join table // owning side MUST have a join table
if ( ! isset($mapping['joinTable']['name'])) { if ( ! isset($mapping['joinTable']['name'])) {
$mapping['joinTable']['name'] = $sourceShortName .'_' . $targetShortName; $mapping['joinTable']['name'] = $sourceShortName .'_' . $targetShortName;

View File

@ -6,6 +6,7 @@ use Doctrine\ORM\Mapping\ClassMetadata;
use Doctrine\ORM\Events; use Doctrine\ORM\Events;
require_once __DIR__ . '/../../TestInit.php'; require_once __DIR__ . '/../../TestInit.php';
require_once __DIR__ . '/../../Models/Global/GlobalNamespaceModel.php';
class ClassMetadataTest extends \Doctrine\Tests\OrmTestCase class ClassMetadataTest extends \Doctrine\Tests\OrmTestCase
{ {
@ -300,4 +301,15 @@ class ClassMetadataTest extends \Doctrine\Tests\OrmTestCase
$this->setExpectedException('Doctrine\ORM\Mapping\MappingException', "No mapping found for field 'foo' on class 'Doctrine\Tests\Models\CMS\CmsUser'."); $this->setExpectedException('Doctrine\ORM\Mapping\MappingException', "No mapping found for field 'foo' on class 'Doctrine\Tests\Models\CMS\CmsUser'.");
$cm->getFieldMapping('foo'); $cm->getFieldMapping('foo');
} }
/**
* @group DDC-961
*/
public function testJoinTableMappingDefaults()
{
$cm = new ClassMetadata('DoctrineGlobal_Article');
$cm->mapManyToMany(array('fieldName' => 'author', 'targetEntity' => 'Doctrine\Tests\Models\CMS\CmsUser'));
$this->assertEquals('doctrineglobal_article_cmsuser', $cm->associationMappings['author']['joinTable']['name']);
}
} }