From b80fb7c817d49343ff0e29e58cc8a8933e5bee1f Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Thu, 13 Jul 2023 14:16:37 +0300 Subject: [PATCH] field level converter --- application/Espo/Core/Utils/Database/Orm/Converter.php | 4 +++- schema/metadata/entityDefs.json | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) 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.",