Shopware 6 翻译中的未知列 <tablename>_id

Unknown column <tablename>_id on Shopware 6 translations

创建带有翻译的 Shopware6 实体后, 完全遵循 official tutorial, 我收到 Unknown column "<tablename>_id" 错误;表名似乎被解释为列名的一部分。

*_translation table中映射字段的命名方案有要求: 他们必须遵循 _id。也就是说,table名称是字段名的一部分。

在教程中这并不明显,因为他们谈到 bundle_id,其中“bundle”不是实体的名称而是 table 名称。很可能你 vendor-prefixed 和 modulename-prefixed 你的 table.

示例:

Your Entity: ACME\CoolModule\Core\Content\FoobarDefinition

Entity Table:
acme_coolmodule_foobar

Translation-table HAS to be exactly:
          CREATE TABLE IF NOT EXISTS `acme_coolmodule_foobar_translation` (            
          `acme_coolmodule_foobar_id` BINARY(16) NOT NULL,
          `language_id` BINARY(16) NOT NULL, ...

困难在于 Shopware 没有 SWAG-Prefix 自己的 tutorial-modules,所以您看不出区别。