diff --git a/lib/classes/forms/Form.php b/lib/classes/forms/Form.php index 0afe442b5364f210c8e9cec1af72104e3144f86d..e5c5b103bdafea8e75e4b4ab56a6315c1104fd35 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 2187979190e177083c211df56bc74fd361ef842c..5c7e09592767e558d897241f9f1c0c740b932e33 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