更新邮件模板类型会导致创建其翻译



我在使用后来添加的语言商店时遇到了一个问题,该商店不是EN或DE。我有一个函数,它只是更新我的邮件模板类型的模板数据。

$this->mailTemplateTypeRepository->update([[
'id' => $mailTemplateType->getId(),
'templateData' => $data
]], $context->getContext());

但无论出于何种原因,它都试图创建一个新的mail_template_type_translation,这导致了一个异常:

An exception occurred while executing 'INSERT INTO `mail_template_type_translation` (`mail_template_type_id`, `language_id`, `name`, `created_at`) VALUES ('�>yd�Kͤh�Qu��H','�xr^z�C��p�p;U',NULL,'2022-10-06 11:36:48.844');'
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'name' cannot be null

对于邮件模板类型,语言商店的翻译不存在,我不想添加它们,它应该只使用这种翻译的后备语言。简单地添加一个未翻译的字段似乎会导致其在特定语言中的翻译。

您可以更改ContextlanguageIdChain属性,使其仅包含翻译的默认语言。

$clonedContext = clone $context->getContext();
$clonedContext->assign(['languageIdChain' => [Defaults::LANGUAGE_SYSTEM]]);
$this->mailTemplateTypeRepository->update([[
'id' => $mailTemplateType->getId(),
'templateData' => $data
]], $clonedContext);

最新更新