diff --git a/src/DbRow.php b/src/DbRow.php index 942ba346..6d02ebc5 100644 --- a/src/DbRow.php +++ b/src/DbRow.php @@ -395,15 +395,16 @@ private function buildDbRow(array $dbRow, array $references): array if ($reference !== null) { $refDbRows = $reference->_getDbRows(); - $firstRefDbRow = reset($refDbRows); - if ($firstRefDbRow === false) { + $refDbRow = $refDbRows[$fk->getForeignTableName()] ?? false; + + if ($refDbRow === false) { throw new \RuntimeException('Unexpected error: empty refDbRows'); // @codeCoverageIgnore } - if ($firstRefDbRow->_getStatus() === TDBMObjectStateEnum::STATE_DELETED) { + if ($refDbRow->_getStatus() === TDBMObjectStateEnum::STATE_DELETED) { throw TDBMMissingReferenceException::referenceDeleted($this->dbTableName, $reference); } $foreignColumns = $fk->getUnquotedForeignColumns(); - $refBeanValues = $firstRefDbRow->dbRow; + $refBeanValues = $refDbRow->dbRow; for ($i = 0, $count = \count($localColumns); $i < $count; ++$i) { $dbRow[$localColumns[$i]] = $refBeanValues[$foreignColumns[$i]]; }