From fa0f8936de4e2cc40cfe166d0e6fe765c01709ef Mon Sep 17 00:00:00 2001 From: Rasmus Fuhse <fuhse@data-quest.de> Date: Tue, 8 Aug 2023 14:43:47 +0000 Subject: [PATCH] =?UTF-8?q?Resolve=20"System-Ank=C3=BCndigung:=20Weitere?= =?UTF-8?q?=20Bereiche=20auffindbar,=20werden=20aber=20nicht=20gespeichert?= =?UTF-8?q?"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #2945 Merge request studip/studip!1994 --- lib/classes/forms/Form.php | 2 +- lib/models/SimpleORMap.class.php | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/classes/forms/Form.php b/lib/classes/forms/Form.php index 0afe442b536..e5c5b103bda 100644 --- a/lib/classes/forms/Form.php +++ b/lib/classes/forms/Form.php @@ -417,7 +417,7 @@ class Form extends Part if ( $context && is_subclass_of($context, \SimpleORMap::class) - && $context->isField($input->getName()) + && ($context->isField($input->getName()) || $context->isRelation($input->getName())) ) { return function ($value) use ($context, $input) { $context[$input->getName()] = $value; diff --git a/lib/models/SimpleORMap.class.php b/lib/models/SimpleORMap.class.php index 2187979190e..5c7e0959276 100644 --- a/lib/models/SimpleORMap.class.php +++ b/lib/models/SimpleORMap.class.php @@ -1731,6 +1731,17 @@ class SimpleORMap implements ArrayAccess, Countable, IteratorAggregate return isset($this->db_fields()[$field]); } + /** + * check if given relation exists in this class + * @param string $field + * @return boolean + */ + function isRelation($field) + { + $field = strtolower($field); + return array_key_exists($field, $this->relations); + } + /** * check if given column is additional * @param string $field -- GitLab