From 34c2673504bbe15972433ccc3be596b0d02cc238 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sun, 14 Apr 2019 18:38:07 +0200 Subject: [PATCH] Fix missing column --- DataStorage/Database/DataMapperAbstract.php | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/DataStorage/Database/DataMapperAbstract.php b/DataStorage/Database/DataMapperAbstract.php index b9997fcd3..1f42758c8 100644 --- a/DataStorage/Database/DataMapperAbstract.php +++ b/DataStorage/Database/DataMapperAbstract.php @@ -670,7 +670,9 @@ class DataMapperAbstract implements DataMapperInterface */ /** @var string $table */ /** @var array $columns */ - if (static::$hasMany[$propertyName]['table'] === static::$hasMany[$propertyName]['mapper']::$table) { + if (static::$hasMany[$propertyName]['table'] === static::$hasMany[$propertyName]['mapper']::$table + && isset($mapper::$columns[static::$hasMany[$propertyName]['dst']]) + ) { $relProperty = $relReflectionClass->getProperty($mapper::$columns[static::$hasMany[$propertyName]['dst']]['internal']); if (!$isPublic) { @@ -736,7 +738,9 @@ class DataMapperAbstract implements DataMapperInterface // Setting relation value (id) for relation (since the relation is not stored in an extra relation table) /** @var string $table */ /** @var array $columns */ - if (static::$hasMany[$propertyName]['table'] === static::$hasMany[$propertyName]['mapper']::$table) { + if (static::$hasMany[$propertyName]['table'] === static::$hasMany[$propertyName]['mapper']::$table + && isset($mapper::$columns[static::$hasMany[$propertyName]['dst']]) + ) { $value[$mapper::$columns[static::$hasMany[$propertyName]['dst']]['internal']] = $objId; } @@ -999,7 +1003,9 @@ class DataMapperAbstract implements DataMapperInterface // create if not existing /** @var string $table */ /** @var array $columns */ - if (static::$hasMany[$propertyName]['table'] === static::$hasMany[$propertyName]['mapper']::$table) { + if (static::$hasMany[$propertyName]['table'] === static::$hasMany[$propertyName]['mapper']::$table + && isset($mapper::$columns[static::$hasMany[$propertyName]['dst']]) + ) { $relProperty = $relReflectionClass->getProperty($mapper::$columns[static::$hasMany[$propertyName]['dst']]['internal']); if (!$isPublic) { @@ -1072,7 +1078,9 @@ class DataMapperAbstract implements DataMapperInterface // create if not existing /** @var string $table */ /** @var array $columns */ - if (static::$hasMany[$propertyName]['table'] === static::$hasMany[$propertyName]['mapper']::$table) { + if (static::$hasMany[$propertyName]['table'] === static::$hasMany[$propertyName]['mapper']::$table + && isset($mapper::$columns[static::$hasMany[$propertyName]['dst']]) + ) { $value[$mapper::$columns[static::$hasMany[$propertyName]['dst']]['internal']] = $objId; }