Merge branch 'DDC-961'
This commit is contained in:
commit
7a40e3f6f2
@ -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;
|
||||||
|
@ -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']);
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user