diff --git a/application/Espo/Core/Utils/Database/Orm/Converter.php b/application/Espo/Core/Utils/Database/Orm/Converter.php index fae46aeefc..7683d9225d 100644 --- a/application/Espo/Core/Utils/Database/Orm/Converter.php +++ b/application/Espo/Core/Utils/Database/Orm/Converter.php @@ -448,7 +448,9 @@ class Converter } /** @var ?class-string $className */ - $className = $this->metadata->get(['fields', $type, 'converterClassName']); + $className = + $this->metadata->get(['entityDefs', $entityType, 'fields', $field, 'converterClassName']) ?? + $this->metadata->get(['fields', $type, 'converterClassName']); if ($className) { $toUnset = diff --git a/schema/metadata/entityDefs.json b/schema/metadata/entityDefs.json index 258c28b0a2..f5b445635c 100644 --- a/schema/metadata/entityDefs.json +++ b/schema/metadata/entityDefs.json @@ -391,6 +391,10 @@ }, "description": "Fields that are incompatible with the subject field on detail view layouts." }, + "converterClassName": { + "type": "string", + "description": "Converts field defs to ORM metadata. Should implement Espo\\Core\\Utils\\Database\\Orm\\FieldConverter." + }, "select": { "type": "object", "description": "A custom complex expression to be used for the field when reading from DB. It's possible to define leftJoins and joins that are needed to be applied when the field is being selected.",