Skip to content
Snippets Groups Projects
Commit 8b9193f3 authored by Jan-Hendrik Willms's avatar Jan-Hendrik Willms Committed by Jan-Hendrik Willms
Browse files

fixes #4100

Closes #4100

Merge request studip/studip!2950
parent 77a43b34
No related branches found
No related tags found
No related merge requests found
...@@ -568,10 +568,11 @@ class SimpleORMap implements ArrayAccess, Countable, IteratorAggregate ...@@ -568,10 +568,11 @@ class SimpleORMap implements ArrayAccess, Countable, IteratorAggregate
$record_data = []; $record_data = [];
$relation_data = []; $relation_data = [];
foreach ($data as $key => $value) { foreach ($data as $key => $value) {
if (is_array($value)) { $temp = static::alias_fields()[$key] ?? $key;
$relation_data[$key] = $value; if (isset(static::db_fields()[$temp])) {
} else {
$record_data[$key] = $value; $record_data[$key] = $value;
} else {
$relation_data[$key] = $value;
} }
} }
$record = static::toObject($record_data); $record = static::toObject($record_data);
...@@ -581,8 +582,11 @@ class SimpleORMap implements ArrayAccess, Countable, IteratorAggregate ...@@ -581,8 +582,11 @@ class SimpleORMap implements ArrayAccess, Countable, IteratorAggregate
} else { } else {
$record->setData($record_data); $record->setData($record_data);
} }
if (is_array($relation_data)) {
foreach ($relation_data as $relation => $data) { foreach ($relation_data as $relation => $data) {
if (!$record->isRelation($relation)) {
continue;
}
$options = $record->getRelationOptions($relation); $options = $record->getRelationOptions($relation);
if ($options['type'] == 'has_one') { if ($options['type'] == 'has_one') {
$record->{$relation} = call_user_func([$options['class_name'], 'import'], $data); $record->{$relation} = call_user_func([$options['class_name'], 'import'], $data);
...@@ -607,7 +611,6 @@ class SimpleORMap implements ArrayAccess, Countable, IteratorAggregate ...@@ -607,7 +611,6 @@ class SimpleORMap implements ArrayAccess, Countable, IteratorAggregate
} }
} }
} }
}
return $record; return $record;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment