mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Fix issue with duplicate associations when using string form.
Fixes #2002
This commit is contained in:
parent
6a4e7558fc
commit
8d43764801
3 changed files with 17 additions and 2 deletions
|
@ -903,11 +903,12 @@ class Model extends Object {
|
|||
unset ($this->{$type}[$assoc]);
|
||||
$assoc = $value;
|
||||
$value = array();
|
||||
$this->{$type}[$assoc] = $value;
|
||||
|
||||
if (strpos($assoc, '.') !== false) {
|
||||
list($plugin, $assoc) = pluginSplit($assoc);
|
||||
$this->{$type}[$assoc] = array('className' => $plugin. '.' . $assoc);
|
||||
} else {
|
||||
$this->{$type}[$assoc] = $value;
|
||||
}
|
||||
}
|
||||
$this->_generateAssociation($type, $assoc);
|
||||
|
|
|
@ -1289,6 +1289,20 @@ class ModelIntegrationTest extends BaseModelTest {
|
|||
$this->assertEqual($TestFakeModel->Tag->name, 'Tag');
|
||||
}
|
||||
|
||||
/**
|
||||
* test creating associations with plugins. Ensure a double alias isn't created
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testAutoConstructPluginAssociations() {
|
||||
$Comment = ClassRegistry::init('TestPluginComment');
|
||||
|
||||
$this->assertEquals(2, count($Comment->belongsTo), 'Too many associations');
|
||||
$this->assertFalse(isset($Comment->belongsTo['TestPlugin.User']));
|
||||
$this->assertTrue(isset($Comment->belongsTo['User']), 'Missing association');
|
||||
$this->assertTrue(isset($Comment->belongsTo['TestPluginArticle']), 'Missing association');
|
||||
}
|
||||
|
||||
/**
|
||||
* test Model::__construct
|
||||
*
|
||||
|
|
|
@ -2709,7 +2709,7 @@ class TestPluginComment extends CakeTestModel {
|
|||
'className' => 'TestPlugin.TestPluginArticle',
|
||||
'foreignKey' => 'article_id',
|
||||
),
|
||||
'User'
|
||||
'TestPlugin.User'
|
||||
);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue