Also ich habe hier eine eigentlich sehr einfache install-Prozedur in meinem Plugin. Und zwar möchte ich ein E-Mail Template anlegen. Dazu erstelle ich zuerst den Template-Type und dann das E-Mail Template.
$mailTemplateTypeId = $this->createMailTemplateType();
if (!$mailTemplateTypeId) {
throw new Exception('Couldn\'t create email template type.');
}
$this->addEmailTemplate($mailTemplateTypeId);
Der Template-Type wird korrekt angelegt und ich habe eine gültige ID. Jetzt lege ich das Mail-Template an. Aber die Template-Type-Id bekomme ich einfach nicht in das Mail Template:
$data = [
'id' => $mailTemplateId,
'mailTemplateTypeId' => $mailTemplateTypeId,
//'mailTemplateType' => ['id' => $mailTemplateTypeId], // geht auch nicht
'system_default' => false,
'translations' => [
// ...
]
];
$this->mailTemplateRepo->create([ $data ], Context::createDefaultContext());
Auch nicht wenn ich es direkt in die DB schreibe. WTF?
$this->connection->insert('mail_template', [
'id' => Uuid::fromHexToBytes($mailTemplateId),
'mail_template_type_id' => Uuid::fromHexToBytes($mailTemplateTypeId),
'system_default' => false,
'created_at' => date(Defaults::STORAGE_DATE_TIME_FORMAT),
]);
Es wird ohne Fehler in die Tabelle geschrieben aber das Feld mail_template_type_id
ist einfach immer NULL
. Wie kann das denn sein? $mailTemplateTypeId
hat immer einen gültigen Wert.