From 3d18d19e54af9fbfd41d97cc25167a54a18a7553 Mon Sep 17 00:00:00 2001 From: Bernhard Schussek Date: Wed, 5 Jan 2022 20:09:14 +0100 Subject: [PATCH 1/2] Fixed join columns to be converted to the correct type Currently, `AuditReader` fails when handling `ToOne` associations with Symfony Uuids as primary keys. This is fixed by converting the join column value with the join column's type as is already done in line 834 for regular fields. --- src/AuditReader.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/AuditReader.php b/src/AuditReader.php index 6af27404..bae72103 100644 --- a/src/AuditReader.php +++ b/src/AuditReader.php @@ -888,7 +888,10 @@ private function createEntity($className, array $columnMap, array $data, $revisi foreach ($assoc['targetToSourceKeyColumns'] as $targetColumn => $srcColumn) { $joinColumnValue = $data[$columnMap[$srcColumn]] ?? null; if (null !== $joinColumnValue) { - $associatedId[$targetClass->fieldNames[$targetColumn]] = $joinColumnValue; + $targetField = $targetClass->fieldNames[$targetColumn]; + $joinColumnType = Type::getType($targetClass->fieldMappings[$targetField]['type']); + $joinColumnValue = $type->convertToPHPValue($joinColumnValue, $this->platform); + $associatedId[$targetField] = $joinColumnValue; } } if (!$associatedId) { From 892eea8b7d58de3a5bc46ab2e7d15c65bd57cb87 Mon Sep 17 00:00:00 2001 From: Bernhard Schussek Date: Wed, 5 Jan 2022 20:26:03 +0100 Subject: [PATCH 2/2] Fixed usage of join column type --- src/AuditReader.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/AuditReader.php b/src/AuditReader.php index bae72103..4e41b2f3 100644 --- a/src/AuditReader.php +++ b/src/AuditReader.php @@ -890,7 +890,7 @@ private function createEntity($className, array $columnMap, array $data, $revisi if (null !== $joinColumnValue) { $targetField = $targetClass->fieldNames[$targetColumn]; $joinColumnType = Type::getType($targetClass->fieldMappings[$targetField]['type']); - $joinColumnValue = $type->convertToPHPValue($joinColumnValue, $this->platform); + $joinColumnValue = $joinColumnType->convertToPHPValue($joinColumnValue, $this->platform); $associatedId[$targetField] = $joinColumnValue; } }