我正在尝试将新实体添加到我的电子邮件模板中,所以我有: 1)我用自定义实体创建了一个新插件
$connection->executeQuery('
CREATE TABLE IF NOT EXISTS `my_entity` (
`id` BINARY(16) NOT NULL,
`message` VARCHAR(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
');
2)我在此列中添加了第一行:
id | name
bin... | test
3)我在db mail_template_type
列available_entities
中编辑此记录
{"order":"order","salesChannel":"sales_channel","myEntity":"my_entity"}
现在,当我编辑电子邮件时,twig告诉我有一个要使用的变量,但是当我使用它时,{{ myEntity.name }}
中没有任何内容
请问我有一个清楚的解释,我该怎么做?
答案 0 :(得分:0)
如果您调度自己的事件来发送邮件,则必须实现getAvailableData
功能并将实体添加到集合中
public static function getAvailableData(): EventDataCollection
{
return (new EventDataCollection())
->add('myEntity', new EntityType(MyEntityDefinition::class));
}
此外,您还必须创建一个getter函数以将数据提供给邮件模板。
public function getMyEntity(): MyEntityEntity
{
return $this->myEntity;
}
否则,如果要将实体添加到已经存在的事件中,则可以向事件中使用的实体添加关联。