Skip to content

Commit a78f102

Browse files
authored
Merge pull request #104 from moufmouf/ref_no_prim_key_reverse
Reverse relationship on beans with foreign key on non primary key fails
2 parents 9f0d39c + d406a2c commit a78f102

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

src/Utils/DirectForeignKeyMethodDescriptor.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,11 +120,11 @@ private function getFilters(ForeignKeyConstraint $fk) : string
120120
$counter = 0;
121121
$parameters = [];
122122

123-
$pkColumns = TDBMDaoGenerator::getPrimaryKeyColumnsOrFail($this->mainTable);
123+
$fkForeignColumns = $fk->getUnquotedForeignColumns();
124124

125125
foreach ($fk->getUnquotedLocalColumns() as $columnName) {
126-
$pkColumn = $pkColumns[$counter];
127-
$parameters[] = sprintf('%s => $this->get(%s, %s)', var_export($fk->getLocalTableName().'.'.$columnName, true), var_export($pkColumn, true), var_export($this->fk->getForeignTableName(), true));
126+
$fkColumn = $fkForeignColumns[$counter];
127+
$parameters[] = sprintf('%s => $this->get(%s, %s)', var_export($fk->getLocalTableName().'.'.$columnName, true), var_export($fkColumn, true), var_export($this->fk->getForeignTableName(), true));
128128
++$counter;
129129
}
130130
$parametersCode = '['.implode(', ', $parameters).']';

tests/TDBMDaoGeneratorTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1602,6 +1602,9 @@ public function testForeignKeyPointingToNonPrimaryKey()
16021602
$newBean = new RefNoPrimKeyBean($bean, 'baz');
16031603
$dao->save($newBean);
16041604
$this->assertSame('foo', $newBean->getFrom()->getTo());
1605+
1606+
$resultSet = $bean->getRefNoPrimKey();
1607+
$this->assertCount(2, $resultSet);
16051608
}
16061609

16071610
/**

0 commit comments

Comments
 (0)