1

完全按照官方教程创建带有翻译的 Shopware6 实体后,出现Unknown column "<tablename>_id"错误;表名似乎被解释为列名的一部分。

4

1 回答 1

3

*_translation 表中映射字段的命名方案有一个要求:它们必须遵循 <tablename>_id。也就是说,表名是字段名的一部分。

在教程中这并不明显,因为他们谈到了 bundle_id,其中“bundle”不是实体的名称,而是表的名称。很可能您在表中添加了供应商前缀和模块名称前缀。

例子:

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 他们自己的教程模块,所以你看不到区别。

于 2020-08-05T18:29:39.860 回答