diff options
| author | André Noack <noack@data-quest.de> | 2024-02-02 10:26:07 +0000 |
|---|---|---|
| committer | André Noack <noack@data-quest.de> | 2024-02-02 10:26:07 +0000 |
| commit | c79263d70eac66dce4189df797da71ba232935e0 (patch) | |
| tree | 85c63d4f00e628879d249375ba6e278588e66569 /lib/classes/forms/Form.php | |
| parent | c15ee4ba159b4a2c01109e3dcbbcdf030c867aa1 (diff) | |
Resolve "FormBuilder kann nicht mit zusätzlichen SORM Attributen umgehen"
Closes #3706
Merge request studip/studip!2578
Diffstat (limited to 'lib/classes/forms/Form.php')
| -rw-r--r-- | lib/classes/forms/Form.php | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/classes/forms/Form.php b/lib/classes/forms/Form.php index 5e27895..4e384b1 100644 --- a/lib/classes/forms/Form.php +++ b/lib/classes/forms/Form.php @@ -129,7 +129,11 @@ class Form extends Part } foreach ($params['fields'] as $fieldname => $fielddata) { if (is_array($fielddata) && !array_key_exists('value', $fielddata)) { - if ($object->isField($fieldname)) { + if ( + $object->isField($fieldname) + || $object->isAdditionalField($fieldname) + || $object->isAliasField($fieldname) + ) { $params['fields'][$fieldname]['value'] = $object[$fieldname]; } } @@ -412,7 +416,6 @@ class Form extends Part } $all_values[$input->getName()] = $value; } - foreach ($this->parts as $part) { $context = $part->getContextObject(); if ($context && method_exists($context, 'store')) { @@ -514,7 +517,12 @@ class Form extends Part if ( $context && is_subclass_of($context, \SimpleORMap::class) - && ($context->isField($input->getName()) || $context->isRelation($input->getName())) + && ( + $context->isField($input->getName()) + || $context->isAdditionalField($input->getName()) + || $context->isAliasField($input->getName()) + || $context->isRelation($input->getName()) + ) ) { return function ($value) use ($context, $input) { if ($context && !$value && $value !== null) { |
